פתרון מסלול אירוע וניתוק¶
פתרון ראשון¶
ביטול לפני תחילת העבודה יכול למנוע את שתי הודעות העבודה. ביטול בזמן עבודה יראה התחלה, כניסה להסרה, השלמת עבודה ורק אחר כך השלמת הסרה. החזרה מפעולת הביטול הממתינה מוכיחה שהעבודה הזאת אינה ממשיכה להשתמש במצב. ההוכחה תלויה גם בכך שאין מקור אחר שמוסיף אותה שוב אחרי הביטול.
פתרון שני¶
ניהול המשאב יודע מתי לבצע שחרור לפי חיי ההתקן, אך אינו מגלה בעצמו כל מצביע שהועבר לעבודה. פעולת הניקוי הרשומה עוצרת את המשתמש האסינכרוני לפני שחרור ההקצאה. אם שלב הכנה נכשל אחרי רישום הפעולה, מסגרת הניקוי תפעיל אותה גם אם העבודה עדיין לא תוזמנה, והביטול יסתיים בלי צורך לחכות לעבודה שלא התחילה.
פתרון שלישי¶
נסמן בעלות ראשונית של הדרייבר על באפר הקבלה, יצירת מטא־נתוני חבילה והעברה לשכבה הבאה לפי חוזה הממשק. נציין אם הנתונים נשארים משותפים ומתי ההפניה האחרונה משחררת אותם. בתור הסוקט קיימת אחריות חדשה להחזיק את הנתונים עד צריכה או השלכה.
אחרי שחרור בעלות שמאפשר להסרה להתקדם, המטפל אינו רשאי להמשיך לקרוא מצב שעלול להשתחרר. הוא צריך לסיים שימוש במצב לפני נקודת השחרור או להחזיק הפניה נפרדת עם חוזה חיים מתאים. חזרת הפונקציה והחזרת הבעלות אינן תמיד אותו אירוע.