util: introduce SharedResource
commitf16ba00de946517e5cca4edeeec3e21f8f77132d
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Tue, 22 Oct 2019 11:18:03 +0000 (22 14:18 +0300)
committerMax Reitz <mreitz@redhat.com>
Mon, 28 Oct 2019 10:22:31 +0000 (28 11:22 +0100)
tree72869a81bd44dbb447f4b06eeb895b942b9f5317
parente332a726da322c5c68bc34ffb59384e31e36d0ff
util: introduce SharedResource

Introduce an API for some shared splittable resource, like memory.
It's going to be used by backup. Backup uses both read/write io and
copy_range. copy_range may consume memory implictly, so the new API is
abstract: it doesn't allocate any real memory but only hands out
tickets.

The idea is that we have some total amount of something and callers
should wait in coroutine queue if there is not enough of the resource
at the moment.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 20191022111805.3432-5-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
include/qemu/co-shared-resource.h [new file with mode: 0644]
util/Makefile.objs
util/qemu-co-shared-resource.c [new file with mode: 0644]