תרגול pipeline שנכשל¶
שנו את הצרכן כך שיזרוק בעת קבלת הערך 7. ודאו שהמפיק והצרכן מגיעים למצב סופי, גם כאשר capacity הוא 1. בדקו גם ביטול לפני תחילת העבודה וביטול בזמן שהמפיק ממתין למקום.
החליפו את int בפריט IDisposable שסופר יצירה ושחרור. הגדירו בעלות: לפני WriteAsync הבעלים הוא המפיק, אחרי הצלחה הבעלים הוא התור, ואחרי Read הבעלים הוא הצרכן. הוסיפו ניקוי של פריטים שנותרו בתור אחרי שכל המשימות הסתיימו.
כתבו דוגמה שבה WaitAsync מסתיים ב־timeout אבל הפעולה המקורית משלימה מאוחר יותר. הסבירו מדוע Dispose של CancellationTokenSource אינו בקשת ביטול, ומדוע בקשת ביטול לבדה אינה אישור שחרור buffer.