[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 1/4] os-posix: Add os_set_daemonize()
From: |
Eric Blake |
Subject: |
Re: [PATCH v2 1/4] os-posix: Add os_set_daemonize() |
Date: |
Thu, 3 Mar 2022 14:22:13 -0600 |
User-agent: |
NeoMutt/20211029-378-f757a4 |
On Thu, Mar 03, 2022 at 05:48:11PM +0100, Hanna Reitz wrote:
> The daemonizing functions in os-posix (os_daemonize() and
> os_setup_post()) only daemonize the process if the static `daemonize`
> variable is set. Right now, it can only be set by os_parse_cmd_args().
>
> In order to use os_daemonize() and os_setup_post() from the storage
> daemon to have it be daemonized, we need some other way to set this
> `daemonize` variable, because I would rather not tap into the system
> emulator's arg-parsing code. Therefore, this patch adds an
> os_set_daemonize() function, which will return an error on os-win32
> (because daemonizing is not supported there).
>
> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
> +++ b/include/sysemu/os-win32.h
> @@ -77,6 +77,11 @@ typedef struct {
> } qemu_timeval;
> int qemu_gettimeofday(qemu_timeval *tp);
>
> +static inline int os_set_daemonize(bool d)
> +{
> + return -ENOTSUP;
Should this fail only if d is true? Or will all callers only ever
pass true, in which case why do we need the paraemeter?
> +}
> +
> static inline bool is_daemonized(void)
> {
> return false;
> diff --git a/os-posix.c b/os-posix.c
> index ae6c9f2a5e..24692c8593 100644
> --- a/os-posix.c
> +++ b/os-posix.c
> @@ -317,6 +317,12 @@ bool is_daemonized(void)
> return daemonize;
> }
>
> +int os_set_daemonize(bool d)
> +{
> + daemonize = d;
> + return 0;
> +}
> +
> int os_mlock(void)
> {
> #ifdef HAVE_MLOCKALL
> --
> 2.34.1
>
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org