<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div><span style="font-family: arial; white-space: pre-wrap; widows: 1;">ACE VERSION: 6.3.0</span></div><div>(this bug still exists in version 6.4.0)</div><div><br></div><div>Our test codes looks like this:</div><div><br></div><div>1:while (true)</div><div>2:{</div><div>3:    reactor()->purge_pending_notifications(xxx);</div><div>4:    reactor()->notify(xxx);</div><div>5:}</div><div><br></div><div>after a while , we found dead-lock occurs at  line 4.</div><div><br></div><div>гнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгн</div><div><br></div><div>I check the code and found that :</div><div><br></div><div>purge_pending_notifications can only purge message in notify queue</div><div><br></div><div>messages in pipe can not be purged</div><div><br></div><div>so calling notify() after purge_pending_notifications() can always leads one message be write to pipe</div><div><br></div><div>So when I keep calling like this , soon buffer of pipe will full and notify() will be blocked , then dead-lock occurs</div><div><br></div><div>гнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгн</div><div><br></div><div>we are using this two interfaces building important functions of our application</div><div><br></div><div>we will appreciate it if this bug being fixed soon</div><div><br></div><div>гнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгнгн</div><div><br></div><div>poor English, sorry!</div></div><br><br><span title="neteasefooter"><p> </p></span>