On 06/17/2010 08:05 PM, Anthony Liguori wrote:
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.

In posix-aio-compat, yes. In threadlets you'll expire excess idle threads after each threadlet has completed. If you want to keep the threads above the min_threads-th ready for 10 seconds, that's fine; but it's not what the v4 code does.

Paolo

Reply via email to