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