On 11/12/2017 11:23, Stefan Hajnoczi wrote:
>>
>> In other words, I don't see what 'QEMU_WITH_LOCK_GUARD() {}' buys us
>> over '{ QEMU_LOCK_GUARD() }'.
> The QEMU_WITH_LOCK_GUARD() {} syntax is nice because it's similar to
> if/while/for statements.
>
> However, { QEMU_LOCK_GUARD() } doesn't hide
On Fri, Dec 08, 2017 at 02:02:32PM -0600, Eric Blake wrote:
> On 12/08/2017 12:12 PM, Paolo Bonzini wrote:
> > On 08/12/2017 16:13, Stefan Hajnoczi wrote:
> >>> -qemu_mutex_lock(&pool->lock);
> >>> +QEMU_LOCK_GUARD(QemuMutex, pool_guard, &pool->lock);
> >>> if (pool->idle_threads == 0
On Fri, Dec 08, 2017 at 03:13:06PM +, Stefan Hajnoczi wrote:
[...]
> > @@ -330,7 +326,7 @@ void thread_pool_free(ThreadPool *pool)
> >
> > assert(QLIST_EMPTY(&pool->head));
> >
> > -qemu_mutex_lock(&pool->lock);
> > +QEMU_LOCK_GUARD(QemuMutex, pool_guard, &pool->lock);
> >
On 12/08/2017 12:12 PM, Paolo Bonzini wrote:
> On 08/12/2017 16:13, Stefan Hajnoczi wrote:
>>> -qemu_mutex_lock(&pool->lock);
>>> +QEMU_LOCK_GUARD(QemuMutex, pool_guard, &pool->lock);
>>> if (pool->idle_threads == 0 && pool->cur_threads < pool->max_threads) {
>>> spawn_thread(
On 12/08/2017 09:13 AM, Stefan Hajnoczi wrote:
> On Fri, Dec 08, 2017 at 11:55:53AM +0100, Paolo Bonzini wrote:
>> @@ -88,9 +88,9 @@ static void *worker_thread(void *opaque)
>>
>> do {
>> pool->idle_threads++;
>> -qemu_mutex_unlock(&pool->lock);
>> +q
On 08/12/2017 16:13, Stefan Hajnoczi wrote:
>> -qemu_mutex_lock(&pool->lock);
>> +QEMU_LOCK_GUARD(QemuMutex, pool_guard, &pool->lock);
>> if (pool->idle_threads == 0 && pool->cur_threads < pool->max_threads) {
>> spawn_thread(pool);
>> }
>> QTAILQ_INSERT_TAIL(&pool->
On Fri, Dec 08, 2017 at 11:55:53AM +0100, Paolo Bonzini wrote:
> @@ -88,9 +88,9 @@ static void *worker_thread(void *opaque)
>
> do {
> pool->idle_threads++;
> -qemu_mutex_unlock(&pool->lock);
> +qemu_lock_guard_unlock(&pool_guard);
> ret
Signed-off-by: Paolo Bonzini
---
util/thread-pool.c | 26 +++---
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/util/thread-pool.c b/util/thread-pool.c
index 610646d131..06ada38376 100644
--- a/util/thread-pool.c
+++ b/util/thread-pool.c
@@ -78,7 +78,7 @@ stat