diff options
author | Steve Huston <shuston@riverace.com> | 2006-08-24 21:44:48 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2006-08-24 21:44:48 +0000 |
commit | bb2e1f5e0acf91891b6a2b227934d02da0c3cb2b (patch) | |
tree | 55535f652f4036a5d50df6812511c84ceab12fcd /ACE | |
parent | 225794bfbdb7d3b4877e67fc58108f59288bc940 (diff) | |
download | ATCD-bb2e1f5e0acf91891b6a2b227934d02da0c3cb2b.tar.gz |
ChangeLogTag:Thu Aug 24 21:40:24 UTC 2006 Steve Huston <shuston@riverace.com
Diffstat (limited to 'ACE')
-rw-r--r-- | ACE/ChangeLog | 13 | ||||
-rw-r--r-- | ACE/tests/Process_Manual_Event_Test.cpp | 4 |
2 files changed, 15 insertions, 2 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index 4d1b161f115..e8bbbbf2abe 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,16 @@ +Thu Aug 24 21:40:24 UTC 2006 Steve Huston <shuston@riverace.com> + + * tests/Process_Manual_Event_Test.cpp (acquire_release): Fixed a race + condition whereby while a parent and child were ping-ponging, it + was possible for one process to signal event1, wait on event2, then + signal event1 again before the other process could respond to + event1 being signaled and reset it. Thus, event1 was being reset + after the other process signaled it, ensuring a never-ending + wait at the end of the iterations. I changed the code to quickly + reset the event before printing the debug message, thereby closing + the window of opportunity a lot. But probably not completely + removing it... we'll have to see. + Thu Aug 24 16:40:54 UTC 2006 Steve Huston <shuston@riverace.com> * ace/config-aix-4.x.h: Only need to set diff --git a/ACE/tests/Process_Manual_Event_Test.cpp b/ACE/tests/Process_Manual_Event_Test.cpp index b697743273b..638d519358a 100644 --- a/ACE/tests/Process_Manual_Event_Test.cpp +++ b/ACE/tests/Process_Manual_Event_Test.cpp @@ -97,8 +97,8 @@ acquire_release (void) ACE_TEXT ("Failed acquiring pong"))); else { - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P) Pong\n"))); event_pong.reset (); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P) Pong\n"))); } } @@ -131,9 +131,9 @@ acquire_release (void) ACE_TEXT ("Failed acquiring ping"))); else { + event_ping.reset (); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P) Ping\n"))); - event_ping.reset (); } event_pong.signal (); |