[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