mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
thread-pool: avoid passing the pool parameter every time
thread_pool_submit_aio() is always called on a pool taken from qemu_get_current_aio_context(), and that is the only intended use: each pool runs only in the same thread that is submitting work to it, it can't run anywhere else. Therefore simplify the thread_pool_submit* API and remove the ThreadPool function parameter. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Message-Id: <20230203131731.851116-5-eesposit@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
0fdb73112b
commit
aef04fc790
12 changed files with 27 additions and 44 deletions
|
@ -2042,9 +2042,7 @@ out:
|
|||
|
||||
static int coroutine_fn raw_thread_pool_submit(ThreadPoolFunc func, void *arg)
|
||||
{
|
||||
/* @bs can be NULL, bdrv_get_aio_context() returns the main context then */
|
||||
ThreadPool *pool = aio_get_thread_pool(qemu_get_current_aio_context());
|
||||
return thread_pool_submit_co(pool, func, arg);
|
||||
return thread_pool_submit_co(func, arg);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -153,7 +153,6 @@ static BlockAIOCB *paio_submit(BlockDriverState *bs, HANDLE hfile,
|
|||
BlockCompletionFunc *cb, void *opaque, int type)
|
||||
{
|
||||
RawWin32AIOData *acb = g_new(RawWin32AIOData, 1);
|
||||
ThreadPool *pool;
|
||||
|
||||
acb->bs = bs;
|
||||
acb->hfile = hfile;
|
||||
|
@ -168,8 +167,7 @@ static BlockAIOCB *paio_submit(BlockDriverState *bs, HANDLE hfile,
|
|||
acb->aio_offset = offset;
|
||||
|
||||
trace_file_paio_submit(acb, opaque, offset, count, type);
|
||||
pool = aio_get_thread_pool(qemu_get_current_aio_context());
|
||||
return thread_pool_submit_aio(pool, aio_worker, acb, cb, opaque);
|
||||
return thread_pool_submit_aio(aio_worker, acb, cb, opaque);
|
||||
}
|
||||
|
||||
int qemu_ftruncate64(int fd, int64_t length)
|
||||
|
|
|
@ -43,7 +43,6 @@ qcow2_co_process(BlockDriverState *bs, ThreadPoolFunc *func, void *arg)
|
|||
{
|
||||
int ret;
|
||||
BDRVQcow2State *s = bs->opaque;
|
||||
ThreadPool *pool = aio_get_thread_pool(qemu_get_current_aio_context());
|
||||
|
||||
qemu_co_mutex_lock(&s->lock);
|
||||
while (s->nb_threads >= QCOW2_MAX_THREADS) {
|
||||
|
@ -52,7 +51,7 @@ qcow2_co_process(BlockDriverState *bs, ThreadPoolFunc *func, void *arg)
|
|||
s->nb_threads++;
|
||||
qemu_co_mutex_unlock(&s->lock);
|
||||
|
||||
ret = thread_pool_submit_co(pool, func, arg);
|
||||
ret = thread_pool_submit_co(func, arg);
|
||||
|
||||
qemu_co_mutex_lock(&s->lock);
|
||||
s->nb_threads--;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue