I don't use the broadcast functionality, but, it looks like that is broken too. signal_all is never reset to 0 after the broadcast function sets it to 1. Here is an untested fix
cond->num_waiting--;/*we have the lock(s)*/
if (cond->signal_all) {
if (cond->num_waiting == 0) {
+ cond->signal_all=0;
ResetEvent(cond->event);
}
done=1;
}
else if (cond->signalled) {
cond->signalled = 0;
ResetEvent(cond->event);
done=1;
}
Bill Stoddard <[EMAIL PROTECTED]> wrote:
if (cond->signal_all) {
if (cond->num_waiting == 0) {
+ cond->signal_all=0;
ResetEvent(cond->event);
}
done=1;
}
else if (cond->signalled) {
cond->signalled = 0;
ResetEvent(cond->event);
done=1;
}
Bill Stoddard <[EMAIL PROTECTED]> wrote:
E Holyat wrote:
> Here is a patch for win32 that has been tested extensively for a few
> months now. I submitted it to bugzilla
>
Based on a quick code review, I'm +1 for committing this patch.
Bill
Yahoo! Mail
Stay connected, organized, and protected. Take the tour
