| SYSMON_TASKQ(9) | Kernel Developer's Manual | SYSMON_TASKQ(9) | 
sysmon_taskq —
#include
  <dev/sysmon/sysmon_taskq.h>
void
  
  sysmon_task_queue_preinit(void);
void
  
  sysmon_task_queue_init(void);
void
  
  sysmon_task_queue_fini(void);
int
  
  sysmon_task_queue_sched(u_int
    pri, void (*func)(void
    *), void *arg);
sysmon_taskq provides a simple
  general purpose task queue. It can be used to run callbacks that require
  thread context, but do not warrant the use of a more fine-grained solution.
Although the intended usage is related to the context of system
    monitoring and power management, also other comparable functions are
    suitable for sysmon_taskq.
sysmon_task_queue_preinit(). Before actual usage, a
  machine-dependent procedure should finish the initialization by calling
  sysmon_task_queue_init(). This will create a kernel
  thread that can be later halted by
  sysmon_task_queue_fini(). All scheduled tasks are
  executed before the queue is halted.
The sysmon_task_queue_sched() enqueues
    func to be executed at the priority
    pri. If pri is 0, the scheduled
    function will be placed as the last element in the queue. The single
    argument passed to func is specified by
    arg.
sysmon_task_queue_sched()
  returns 0. Otherwise, the following error values are returned:
EINVAL]ENOMEM]| January 24, 2010 | NetBSD 9.3 |