שאלה על threads ועל events
אני מממש תור, שחוטים שונים אמורים להוציא ממנו איברים בזה אחר זה, ולפעול איתם. כשהתוכנית רצה, קורים מיקרים שראש התור נמצא אחרי זנב התור = זאת אומרת ששני חוטים נכנסו פנימה ביחד, ולכן השני קידם את הראש, והוציא מהתור ג'אנק במקום מידע אמיתי. אני חושב שהבעיה היא בשגרה שמטפלת באירוע של לחכות לתור לא ריק. כנראה ששני חוטים מגיעים אליה, ושניהם מחכים שהאירוע הזה יהיה מסומן. האירוע מסומן על ידי חוט שלישי, ואז שניהם יוצאים מהשיגרה שגורמת להם לחכות. הראשון נכנס לתור, מפעיל את המיוטקס שנועל אותו, ומוציא את האיבר מהתור. השני כבר לא מחכה לאירוע יותר, ורק מחכה במיוטקס. כשהראשון יוצא, השני נכנס, ומוציא מהתור ג'אנק. איך אני אמור לממש את השגרה שמחכה לאירוע של תור לא ריק? תודה מראש על העזרה.
אני מממש תור, שחוטים שונים אמורים להוציא ממנו איברים בזה אחר זה, ולפעול איתם. כשהתוכנית רצה, קורים מיקרים שראש התור נמצא אחרי זנב התור = זאת אומרת ששני חוטים נכנסו פנימה ביחד, ולכן השני קידם את הראש, והוציא מהתור ג'אנק במקום מידע אמיתי. אני חושב שהבעיה היא בשגרה שמטפלת באירוע של לחכות לתור לא ריק. כנראה ששני חוטים מגיעים אליה, ושניהם מחכים שהאירוע הזה יהיה מסומן. האירוע מסומן על ידי חוט שלישי, ואז שניהם יוצאים מהשיגרה שגורמת להם לחכות. הראשון נכנס לתור, מפעיל את המיוטקס שנועל אותו, ומוציא את האיבר מהתור. השני כבר לא מחכה לאירוע יותר, ורק מחכה במיוטקס. כשהראשון יוצא, השני נכנס, ומוציא מהתור ג'אנק. איך אני אמור לממש את השגרה שמחכה לאירוע של תור לא ריק? תודה מראש על העזרה.