table of contents
other versions
- jessie 3.1.4~abc9f50-7
wpool.h(3) | Coin | wpool.h(3) |
NAME¶
wpool.h -SYNOPSIS¶
#include <Inventor/C/basic.h>Typedefs¶
typedef void cc_wpool_f (void *)
Functions¶
cc_wpool * cc_wpool_construct (int numworkers)
Function Documentation¶
cc_wpool* cc_wpool_construct (intnumworkers)¶
Construct worker pool.void cc_wpool_destruct (cc_wpool *pool)¶
Destruct worker pool. Will wait for all jobs in progress to finishint cc_wpool_get_num_workers (cc_wpool *pool)¶
Returns the number of workers in the pool.void cc_wpool_set_num_workers (cc_wpool *pool, intnewnum)¶
Sets the number of workers in the pool.void cc_wpool_wait_all (cc_wpool *pool)¶
Wait for all pool workers to finish working and go into idle state. This method should only be called by the thread controlling the pool. A pool worker should not call this method, since it will obviously never return from here (it will never go idle).SbBool cc_wpool_try_begin (cc_wpool *pool, intnumworkersneeded)¶
Locks the pool so that workers can be started using the cc_wpool_start_worker() method. numworkersneeded should contain the minumum number of workers that is needed. If workers are available, the pool will be locked and TRUE is returned. Otherwise FALSE is returned. Usage pseudocode:int numworkers = 5; if (cc_wpool_begin(pool, numworkers)) { for (int i = 0; i < numworkers; i++) { cc_wpool_start_worker(my_work[i], my_closure[i]); } cc_wpool_end(pool); }Important! If too few workers are available, the pool will not be locked and cc_wpool_end() should not be called. See also:
cc_wpool_start_worker(),
cc_wpool_end()
void cc_wpool_begin (cc_wpool *pool, intnumworkersneeded)¶
Wait for numworkersneeded workers to become idle. When returning from this call, the pool will be locked, and up to numworkersneeded can be started using the cc_wpool_start_worker() method. Remember to call cc_wpool_end() to unlock the pool again. See also:cc_wpool_try_begin()
void cc_wpool_start_worker (cc_wpool *pool, cc_wpool_f *workfunc, void *closure)¶
Starts a worker. The pool must be locked (using cc_wpool_begin()) before calling this method. See also:cc_wpool_begin() , cc_wpool_end()
void cc_wpool_end (cc_wpool *pool)¶
Unlocks the pool after a cc_wpool_begin(), cc_wpool_start_worker() sequence. Please note that if cc_wpool_begin() returns 0, you should not call cc_wpool_end(). See also:cc_wpool_begin(),
cc_wpool_start_worker()
Author¶
Generated automatically by Doxygen for Coin from the source code.Thu May 29 2014 | Version 4.0.0a |