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