_cp_pooled_thread Struct Reference

#include <thread.h>

Data Fields

long id
 integral (implementation specific) thread id
 the pool this thread belongs to
cp_thread * worker
 the actual thread
cp_thread_action action
 thread function for the next assignment
void * action_prm
 parameter for the next assignment
cp_thread_stop_fn stop_fn
 called on cp_pooled_thread_stop
void * stop_prm
 if not set, stop_fn invoked w/ action_prm
cp_mutex * suspend_lock
 lock for framework scheduling
cp_cond * suspend_cond
 condition variable for framework scheduling
int done
 done flag
int wait
 wait flag

Detailed Description

cp_pooled_thread is a thread that lives in a thread_pool. The struct holds synchronization elements used to control the thread and actuation settings, i.e. a thread function and a parameter to be passed for the next starting thread. The pool initializes a bunch of threads and sets them in 'wait'.

When a client requests threads from the pool, the next available thread is signalled out of 'wait', and runs the thread function requested by the client (see cp_thread_pool_get_impl). When the client thread function is done, the cp_pooled_thread returns to the thread pool and becomes available to pool clients. The cp_pooled_thread only exits when the pool exits, unless explicitly stopped (eg pthread_exit) by client code.

Definition at line 47 of file thread.h.

The documentation for this struct was generated from the following file:
Generated on Mon Dec 5 23:00:23 2011 for cprops by  doxygen 1.4.7