POSIX-RT-Timer
view release on metacpan or search on metacpan
lib/POSIX/RT/Timer.xs view on Meta::CPAN
UV handle(POSIX::RT::Timer timer)
CODE:
RETVAL = (UV)timer;
OUTPUT:
RETVAL
void get_timeout(POSIX::RT::Timer timer)
PREINIT:
struct itimerspec value;
PPCODE:
if (timer_gettime(timer, &value) == -1)
die_sys("Couldn't get_time: %s");
mXPUSHn(timespec_to_nv(&value.it_value));
if (GIMME_V == G_ARRAY)
mXPUSHn(timespec_to_nv(&value.it_interval));
void set_timeout(POSIX::RT::Timer timer, struct timespec new_value, struct timespec new_interval = no_time, bool abstime = FALSE)
PREINIT:
struct itimerspec old_itimer;
PPCODE:
struct itimerspec new_itimer = { new_value, new_interval };
if (timer_settime(timer, (abstime ? TIMER_ABSTIME : 0), &new_itimer, &old_itimer) == -1)
die_sys("Couldn't set_time: %s");
mXPUSHn(timespec_to_nv(&old_itimer.it_value));
if (GIMME_V == G_ARRAY)
mXPUSHn(timespec_to_nv(&old_itimer.it_interval));
IV get_overrun(POSIX::RT::Timer timer)
CODE:
RETVAL = timer_getoverrun(timer);
lib/POSIX/RT/Timer.xs view on Meta::CPAN
}
OUTPUT:
RETVAL
#endif
void get_clocks(...)
PREINIT:
size_t i;
const size_t max = sizeof clocks / sizeof *clocks;
PPCODE:
for (i = 0; i < max; ++i)
mXPUSHp(clocks[i].key, clocks[i].key_length);
PUTBACK;
struct timespec get_time(POSIX::RT::Clock clockid)
CODE:
if (clock_gettime(clockid, &RETVAL) == -1)
die_sys("Couldn't get time: %s");
OUTPUT:
RETVAL
( run in 1.194 second using v1.01-cache-2.11-cpan-5511b514fd6 )