help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] setitimer, small delta and XNU


From: Paolo Bonzini
Subject: Re: [Help-smalltalk] setitimer, small delta and XNU
Date: Thu, 16 Apr 2015 09:58:22 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0


On 15/04/2015 22:25, Holger Freyther wrote:
> this means deltaMilli will be 0 which leads to us “canceling” the timer 
> instead
> of setting it. My workaround is to make sure that tv_usec is never zero. Is 
> this
> acceptable? E.g. something like this?
> 
> diff --git a/libgst/sysdep/posix/timer.c b/libgst/sysdep/posix/timer.c
> index c47ae91..10e0e92 100644
> --- a/libgst/sysdep/posix/timer.c
> +++ b/libgst/sysdep/posix/timer.c
> @@ -121,8 +121,16 @@ _gst_sigalrm_at (int64_t nsTime)
>       struct itimerval value;
> 
>       value.it_interval.tv_sec = value.it_interval.tv_usec = 0;
> -      value.it_value.tv_sec = deltaMilli / 1000;
> -      value.it_value.tv_usec = (deltaMilli % 1000) * 1000;
> +      if (deltaMilli)
> +        {
> +          value.it_value.tv_sec = deltaMilli / 1000;
> +          value.it_value.tv_usec = (deltaMilli % 1000) * 1000;
> +        }
> +      else
> +        {
> +          value.it_value.tv_sec = 0;
> +          value.it_value.tv_usec = 1;
> +        }
>       setitimer (ITIMER_REAL, &value, (struct itimerval *) 0);
>     }
> }
> 
> 

Yes, certainly!

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]