תרגול דירות תהליכונים וכניסה חוזרת¶
תרגיל ראשון - זוגות אתחול¶
הוסיפו scope פנימי שמאתחל COM שוב באותו מודל, וכתבו guard שקורא לCoUninitialize רק עבור HRESULT מוצלח. בדקו כשל שינוי מודל, והסבירו מדוע אי אפשר להעביר את הguard לthread אחר כדי שיסגור שם את האתחול.
תרגיל שני - הודעה שנכנסת בחזרה¶
שנו את הcallback בדוגמת החשבון כך שיבקש העברה נוספת. הגדירו האם מותרת העברה מתוך notification, ואם כן איזה סדר אירועים הלקוח יראה. הגבילו את מספר ההודעות כדי שלא ליצור רקורסיה בלתי מוגבלת.
הוסיפו מאזין שמבקש לסגור את האובייקט בזמן ההודעה. הפעולה החיצונית צריכה לדעת שהיא הסתיימה לפני בקשת הסגירה, ולא להמשיך לגעת במצב שכבר בוטל.
תרגיל שלישי - חקירת המתנה¶
ציירו wait graph עבור STA שמחזיק lock בזמן קריאה לMTA, כאשר הMTA מבצע callback לSTA. תנו שני תיקונים שונים, והסבירו עבור כל אחד אילו invariants צריך לבדוק מחדש. אל תסתפקו בהחלפת mutex לrecursive mutex.