NAME

POSIX::RT::Clock - POSIX real-time clocks

VERSION

version 0.010

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 $types supported are documented in get_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($pid = 0)

    Get the cpu-time clock for the process specified in $pid. If $pid is zero the current process is taken, this is the same as the process clock. This call is currently not supported on most operating systems, despite being defined in POSIX.

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. Unlike sleep, 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 in POSIX::RT::Timer::new.

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.