NAME
POSIX::RT::Clock - POSIX real-time clocks
VERSION
version 0.019
SYNOPSIS
use POSIX::RT::Timer;
my $timer = POSIX::RT::Clock->new('monotonic');
$timer->sleep(1);
DESCRIPTION
POSIX::RT::Clock offers access to various clocks, both portable and OS dependent.
METHODS
Class methods
new($type)
Create a new clock. The
$type
s supported are documented inget_clocks
.get_clocks()
Get a list of all supported clocks. These will be returned by their names, not as objects. Possible values include (but may not be limited to):
realtime
The same clock as
time
and Time::HiRes use. It is the only timer guaranteed to always available and is therefor the default.monotonic
A non-settable clock guaranteed to be monotonic. This is defined in POSIX and supported on most operating systems.
process
A clock that measures (user and system) CPU time consumed by (all of the threads in) the calling process. This is supported on many operating systems.
thread
A clock that measures (user and system) CPU time consumed by the calling thread. This is Linux specific.
uptime
A clock that measures the uptime of the system. This is FreeBSD specific.
virtual
A clock that counts time the process spent in userspace. This is supported only in FreeBSD, NetBSD and Solaris.
get_cpuclock($id = 0)
Get the cpu-time clock for
$id
. If$id
is an integer, it's interpreted as a PID and a per process clock is created, with zero having the special meaning of the current process (this is the same as theprocess
clock). If$id
is athread
object, a per thread clock is created. This call is currently not supported on many operating systems.
Instance methods
get_time()
Get the time of this clock.
set_time($time)
Set the time of this clock. Note that this may not make sense on clocks other than
realtime
and will require sysadmin permissions.get_resolution()
Get the resolution of this clock.
sleep($time, $abstime = 0)
Sleep a
$time
seconds on this clock. Note that it is never restarted after interruption by a signal handler. It returns the remaining time. $time and the return value are relative time unless$abstime
is true. This function may not be available on some operating systems.sleep_deeply($time, $abstime = 0)
Sleep a
$time
seconds on this clock. Unlikesleep
, it will retry on interruption until the time has passed. This function may not be available on some operating systems.timer(%options)
Create a timer based on this clock. All arguments except
clock
as the same as inPOSIX::RT::Timer::new
.handle
This returns the raw handle to the clock.
SEE ALSO
A low-level interface to POSIX clocks is also provided by:
Time::HiRes
POSIX::2008
AUTHOR
Leon Timmermans <fawaka@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Leon Timmermans.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.