[ace-bugs] [ACE]: [calling purge_pending_notifications() before notify() leads to dead-lock]
Steve Huston
shuston at riverace.com
Mon Nov 28 10:43:07 CST 2016
Thank you for the problem info and research into it.
The easiest way to resolve this is to let the reactor event loop run and read things from the notify pipe.
-Steve
On Nov 28, 2016, at 3:12 AM, Jack Wong <pandawkx at 163.com<mailto:pandawkx at 163.com>> wrote:
ACE VERSION: 6.3.0
(this bug still exists in version 6.4.0)
Our test codes looks like this:
1:while (true)
2:{
3: reactor()->purge_pending_notifications(xxx);
4: reactor()->notify(xxx);
5:}
after a while , we found dead-lock occurs at line 4.
-------------------------
I check the code and found that :
purge_pending_notifications can only purge message in notify queue
messages in pipe can not be purged
so calling notify() after purge_pending_notifications() can always leads one message be write to pipe
So when I keep calling like this , soon buffer of pipe will full and notify() will be blocked , then dead-lock occurs
-------------------------
we are using this two interfaces building important functions of our application
we will appreciate it if this bug being fixed soon
-------------------------
poor English, sorry!
_______________________________________________
ace-bugs mailing list
ace-bugs at list.isis.vanderbilt.edu<mailto:ace-bugs at list.isis.vanderbilt.edu>
http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/ace-bugs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.isis.vanderbilt.edu/pipermail/ace-bugs/attachments/20161128/dba422ac/attachment.html>
More information about the ace-bugs
mailing list