[PATCH v2 05/13] rpc: add virNetDaemonSetShutdownCallbacks
Daniel Henrique Barboza
danielhb413 at gmail.com
Mon Aug 10 16:36:45 UTC 2020
On 7/23/20 7:14 AM, Nikolay Shirokovskiy wrote:
> The function is used to set shutdown prepare and wait callbacks. Prepare
> callback is used to inform other threads of the daemon that the daemon will be
> closed soon so that they can start to shutdown. Wait callback is used to wait
> for other threads to actually finish.
>
> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at virtuozzo.com>
> ---
Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
> src/libvirt_remote.syms | 1 +
> src/rpc/virnetdaemon.c | 15 +++++++++++++++
> src/rpc/virnetdaemon.h | 6 ++++++
> 3 files changed, 22 insertions(+)
>
> diff --git a/src/libvirt_remote.syms b/src/libvirt_remote.syms
> index 0018a0c..335e431 100644
> --- a/src/libvirt_remote.syms
> +++ b/src/libvirt_remote.syms
> @@ -87,6 +87,7 @@ virNetDaemonPreExecRestart;
> virNetDaemonQuit;
> virNetDaemonRemoveShutdownInhibition;
> virNetDaemonRun;
> +virNetDaemonSetShutdownCallbacks;
> virNetDaemonUpdateServices;
>
>
> diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c
> index bb81a43..5a5643c 100644
> --- a/src/rpc/virnetdaemon.c
> +++ b/src/rpc/virnetdaemon.c
> @@ -69,6 +69,8 @@ struct _virNetDaemon {
> virHashTablePtr servers;
> virJSONValuePtr srvObject;
>
> + virNetDaemonShutdownCallback shutdownPrepareCb;
> + virNetDaemonShutdownCallback shutdownWaitCb;
> bool quit;
>
> unsigned int autoShutdownTimeout;
> @@ -922,3 +924,16 @@ virNetDaemonHasClients(virNetDaemonPtr dmn)
>
> return ret;
> }
> +
> +void
> +virNetDaemonSetShutdownCallbacks(virNetDaemonPtr dmn,
> + virNetDaemonShutdownCallback prepareCb,
> + virNetDaemonShutdownCallback waitCb)
> +{
> + virObjectLock(dmn);
> +
> + dmn->shutdownPrepareCb = prepareCb;
> + dmn->shutdownWaitCb = waitCb;
> +
> + virObjectUnlock(dmn);
> +}
> diff --git a/src/rpc/virnetdaemon.h b/src/rpc/virnetdaemon.h
> index c2c7767..9f7a282 100644
> --- a/src/rpc/virnetdaemon.h
> +++ b/src/rpc/virnetdaemon.h
> @@ -82,3 +82,9 @@ virNetServerPtr virNetDaemonGetServer(virNetDaemonPtr dmn,
> ssize_t virNetDaemonGetServers(virNetDaemonPtr dmn, virNetServerPtr **servers);
> bool virNetDaemonHasServer(virNetDaemonPtr dmn,
> const char *serverName);
> +
> +typedef int (*virNetDaemonShutdownCallback)(void);
> +
> +void virNetDaemonSetShutdownCallbacks(virNetDaemonPtr dmn,
> + virNetDaemonShutdownCallback prepareCb,
> + virNetDaemonShutdownCallback waitCb);
>
More information about the libvir-list
mailing list