Branch: Tag:


2018-10-29 11:03:33 by Henrik Grubbström (Grubba) <>

Thread.Queue [Paranoia]: Broadcast the changed state.

This is intended to ensure that the state-changed signal
is not lost.

Consider the case when there is a thread that listens on the
condition, but does not act on it; it could starve the threads
that do intend to act on it.

Fixes PIKE-140 (#8140).

378: Inside #if constant(thread_create)
   buffer[w_ptr] = value;    w_ptr++;    int items = w_ptr - r_ptr; -  r_cond::signal(); +  r_cond::broadcast();    key=0;    return items;    }