On 06/17/2010 05:09 AM, Paolo Bonzini wrote:
+ while (QTAILQ_EMPTY(&(queue->request_list))&&
+ (ret != ETIMEDOUT)) {
+ ret = qemu_cond_timedwait(&(queue->cond),
+ &(queue->lock), 10*100000);
+ }
Using qemu_cond_timedwait is a hack for not properly broadcasting the
condvar in flush_threadlet_queue.
I think Anthony answered this one.
I think he said that the code has been changed so I am right? :)
You're right about the condition we check in the exit path but the
timedwait is needed to expire an idle thread.
Regards,
Anthony Liguori