[libvirt] [PATCH 2/6] Warn if requesting update to non-existant timer/handle watch

Peter Krempa pkrempa at redhat.com
Thu Nov 22 21:25:24 UTC 2012


s/non-existant/non-existent/ in the subject

On 11/22/12 17:48, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> The event code is a no-op if requested to update a non-existant

s/non-existant/non-existent/

> timer/handle watch. This makes it hard to detect bugs in the
> caller who have passed bogus data. Add a VIR_WARN output in
> such cases, since the API does not allow for return errors.
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>   src/util/event_poll.c | 13 +++++++++++++
>   1 file changed, 13 insertions(+)
>
> diff --git a/src/util/event_poll.c b/src/util/event_poll.c
> index 276d66d..2ffa94b 100644
> --- a/src/util/event_poll.c
> +++ b/src/util/event_poll.c
> @@ -141,6 +141,7 @@ int virEventPollAddHandle(int fd, int events,
>
>   void virEventPollUpdateHandle(int watch, int events) {
>       int i;
> +    bool found = false;
>       PROBE(EVENT_POLL_UPDATE_HANDLE,
>             "watch=%d events=%d",
>             watch, events);
> @@ -156,10 +157,14 @@ void virEventPollUpdateHandle(int watch, int events) {
>               eventLoop.handles[i].events =
>                       virEventPollToNativeEvents(events);
>               virEventPollInterruptLocked();
> +            found = true;
>               break;
>           }
>       }
>       virMutexUnlock(&eventLoop.lock);
> +
> +    if (!found)
> +        VIR_WARN("Got update for non-existant handle watch %d", watch);

s/non-existant/non-existent/

>   }
>
>   /*
> @@ -249,6 +254,7 @@ void virEventPollUpdateTimeout(int timer, int frequency)
>   {
>       unsigned long long now;
>       int i;
> +    bool found = false;
>       PROBE(EVENT_POLL_UPDATE_TIMEOUT,
>             "timer=%d frequency=%d",
>             timer, frequency);
> @@ -268,11 +274,17 @@ void virEventPollUpdateTimeout(int timer, int frequency)
>               eventLoop.timeouts[i].frequency = frequency;
>               eventLoop.timeouts[i].expiresAt =
>                   frequency >= 0 ? frequency + now : 0;
> +            VIR_DEBUG("Set timer freq=%d expirs=%llu", frequency,

s/expirs/expires/

> +                      eventLoop.timeouts[i].expiresAt);
>               virEventPollInterruptLocked();
> +            found = true;
>               break;
>           }
>       }
>       virMutexUnlock(&eventLoop.lock);
> +
> +    if (!found)
> +        VIR_WARN("Got update for non-existant timer %d", timer);

s/non-existant/non-existent/

>   }
>
>   /*
> @@ -336,6 +348,7 @@ static int virEventPollCalculateTimeout(int *timeout) {
>           if (virTimeMillisNow(&now) < 0)
>               return -1;
>
> +        EVENT_DEBUG("Schedule timeout then=%llu now=%llu", then, now);
>           *timeout = then - now;
>           if (*timeout < 0)
>               *timeout = 0;
>

ACK with spelling and the typo fixed.

Peter




More information about the libvir-list mailing list