Rootroute       Hosting       Order       Map       Login   Secure Inter-Network Operations  
 
man : timeout(9)

Command: man perldoc info search(apropos)  


TIMEOUT(9)                   OpenBSD Kernel Manual                  TIMEOUT(9)

NAME
     timeout_set, timeout_add, timeout_add_sec, timeout_add_msec,
     timeout_add_nsec, timeout_add_usec, timeout_add_tv, timeout_add_ts,
     timeout_add_bt, timeout_del, timeout_pending, timeout_initialized,
     timeout_triggered - execute a function after a specified period of time

SYNOPSIS
     #include <sys/types.h>
     #include <sys/timeout.h>

     void
     timeout_set(struct timeout *to, void (*fn)(void *), void *arg);

     void
     timeout_add(struct timeout *to, int ticks);

     void
     timeout_del(struct timeout *to);

     int
     timeout_pending(struct timeout *to);

     int
     timeout_initialized(struct timeout *to);

     int
     timeout_triggered(struct timeout *to);

     void
     timeout_add_tv(struct timeout *to, struct timeval *);

     void
     timeout_add_ts(struct timeout *to, struct timespec *);

     void
     timeout_add_bt(struct timeout *to, struct bintime *);

     void
     timeout_add_sec(struct timeout *to, int sec);

     void
     timeout_add_msec(struct timeout *to, int msec);

     void
     timeout_add_usec(struct timeout *to, int usec);

     void
     timeout_add_nsec(struct timeout *to, int nsec);

DESCRIPTION
     The timeout API provides a mechanism to execute a function at a given
     time.  The granularity of the time is limited by the granularity of the
     hardclock(9) timer which executes hz(9) times a second.  The function
     will be called at softclock interrupt level.

     It is the responsibility of the caller to provide these functions with
     pre-allocated timeout structures.  All functions in this API may be used
     in interrupt context below splclock().

     This API replaces the historic functions timeout() and untimeout().

     The function timeout_set() prepares the timeout structure to to be used
     in future calls to timeout_add() and timeout_del().  The timeout will be
     prepared to call the function specified by the fn argument with a void *
     argument given in the arg argument.  Once initialized, the to structure
     can be used repeatedly in timeout_add() and timeout_del() and does not
     need to be reinitialized unless the function called and/or its argument
     must change.

     The function timeout_add() schedules the execution of the to timeout in
     at least ticks/hz seconds.  Negative values of ticks are illegal.  If the
     value is `0' it will, in the current implementation, be treated as `1',
     but in the future it might cause an immediate timeout.  The timeout in
     the to argument must be already initialized by timeout_set() and may not
     be used in calls to timeout_set() until it has timed out or been removed
     with timeout_del().  If the timeout in the to argument is already
     scheduled, the old execution time will be replaced by the new one.

     The function timeout_del() will cancel the timeout in the argument to.
     If the timeout has already executed or has never been added the call will
     have no effect.

     The timeout_pending() macro can be used to check if a timeout is
     scheduled to run.

     The timeout_initialized() macro can be used to check if a timeout has
     been initialized.

     The timeout_triggered() macro can be used to check if a timeout is
     running or has been run.  The timeout_add() and timeout_del() functions
     clear the triggered state for that timeout.

     When possible, use the timeout_add_tv(), timeout_add_ts(),
     timeout_add_bt(), timeout_add_sec(), timeout_add_msec(),
     timeout_add_usec(), and timeout_add_nsec() functions instead of
     timeout_add().  Those functions add a timeout whilst converting the time
     specified by the respective types.

CODE REFERENCES
     These functions are implemented in the file sys/kern/kern_timeout.c.

SEE ALSO
     hz(9), hzto(9), splclock(9), tsleep(9), tvtohz(9)

OpenBSD 4.9                     April 21, 2009                     OpenBSD 4.9


rootr.net - man pages