[libvirt] [PATCH v2 1/2] timer impl

Wen Congyang wency at cn.fujitsu.com
Wed Dec 15 07:52:05 UTC 2010


At 2010-12-15 14:32, Hu Tao Write:
> On Wed, Dec 15, 2010 at 10:34:25AM +0800, Wen Congyang wrote:
>> * src/util/timer.c src/util/timer.h src/util/timer_linux.c src/util/timer_win32.c:
>>   timer implementation
>> * src/Makefile.am: build timer
>> * src/libvirt_private.syms: Export public functions
>> * src/libvirt.c: Initialize timer
>> * configure.ac: check the functions in librt used by timer
>>
>> Signed-off-by: Wen Congyang <wency at cn.fujitsu.com>
>>
>> ---

<snip>
> 
> However, I'd suggest providing APIs just wrapping around OS specific
> timer implementations. For linux they look like these:
> 
> struct virTimer {
>     timer_t timer;
> };
> 
> virTimerPtr virNewTimer(virTimerCB cb, void *opaque)
> {
>     virTimerPtr timer;
> 
>     ...
> 
>     timer_event.sigev_notify = SIGEV_THREAD;
>     timer_event.sigev_notify_function = cb;
>     timer_event.sigev_notify_attributes = &timer_thread_attr;
>     timer_event.sigev_value.sival_ptr = opaque;
> 
>     ret = timer_create(CLOCK_MONOTONIC, &timer_event, &timer->timer);
> 
>     ...
> }
> 
> void virModTimer(virTimerPtr timer, uint64_t expire_time)
> {
>     ...
> 
>     timer_settime(timer->timer, ...);
> }
> 

Good idea. Thanks.




More information about the libvir-list mailing list