Re: [Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-11 Thread Paolo Bonzini
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

Re: [Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-11 Thread Stefan Hajnoczi
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

Re: [Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-10 Thread Peter Xu
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); > >

Re: [Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-08 Thread Eric Blake
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(

Re: [Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-08 Thread Eric Blake
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

Re: [Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-08 Thread Paolo Bonzini
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->

Re: [Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-08 Thread Stefan Hajnoczi
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

[Qemu-devel] [PATCH 5/5] thread-pool: convert to use lock guards

2017-12-08 Thread Paolo Bonzini
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