פתרון הקצאה ופגיעת דף¶
פתרון ראשון¶
דפים שנבחרו במקרה ברצף אינם משנים את חוזה הממשק. בריצה אחרת מצב הזיכרון יכול לגרום לבחירה שונה. כאשר ההקצאה הגדולה נכשלת, המודול משחרר את ההקצאה הראשונה ומחזיר שגיאה, ולכן אינו משאיר משאב של מודול שלא נטען בהצלחה.
פתרון שני¶
נחליף את MAP_PRIVATE ב־MAP_SHARED ביצירת המיפוי ונשנה את הציפייה הסופית לתשע. ההורה מחכה לסיום הילד בעזרת waitpid, ולכן הקריאה הסופית אינה מתחרה בכתיבת הילד. הניסוי מציג את חוזה השיתוף של המיפוי, ואינו מודד בעצמו כתובות פיזיות או עלות של פגיעות דף.
פתרון שלישי¶
מאגר מוקצה מראש מאפשר למסלול האירוע לקחת מקום פנוי בלי להפעיל הקצאה שעלולה להמתין. נגדיר בעלות על כל תא, סנכרון בין יצרן לצרכן ומכסה קשיחה. כאשר המאגר מלא נחזיר דחייה או נעדכן מונה אובדן לפי חוזה האירוע, ולא נעקוף את הגבול בהקצאה בלתי מוגבלת.
הקצאה שאינה ממתינה יכולה להיות אפשרות כאשר כשל מותר ומטופל, אך אינה מבטיחה הצלחה. הבחירה תלויה בדרישת המערכת לשימור אירועים וביכולת הצרכן להדביק את הקצב. נמדוד גם את מספר הדחיות ואת משך ההחזקה בתאים.