לדלג לתוכן

פתרון לחץ חוזר ובעלות על הודעה

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

הטיפוסים Full(T) ו־Disconnected(T) מחזירים את הערך לשולח, ולכן אפשר לנסות שוב או לדווח כשל בלי להעתיק את הנתונים מראש. אם בוחרים לזרוק את ההודעה, ההשמדה היא החלטת הלקוח לאחר שקיבל בחזרה בעלות.

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