לדלג לתוכן

תרגול זהות והשמדה דחויה

כתבו רצף ABA עם שלושה צמתים והראו מדוע CAS על כתובת בלבד יכול לקבל מצב שאינו מתאים ל־next שנקרא קודם. אל תריצו use-after-free כדי להדגים את הרעיון; השתמשו במודל מזהים.

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

השוו קורא שמעכב hazard אחד לקורא שנשאר pinned לאורך זמן. ציינו איזה מידע צריך המשחרר לשמור ומה יכולה להיות ההשפעה על זיכרון תחת עומס.