Provided by: libcoin80-doc_3.1.4~abc9f50-4ubuntu2_all
NAME
wpool.h -
SYNOPSIS
#include <Inventor/C/basic.h> #include <Inventor/C/threads/common.h> Typedefs typedef void cc_wpool_f (void *) Functions cc_wpool * cc_wpool_construct (int numworkers) void cc_wpool_destruct (cc_wpool *pool) int cc_wpool_get_num_workers (cc_wpool *pool) void cc_wpool_set_num_workers (cc_wpool *pool, int newnum) void cc_wpool_wait_all (cc_wpool *pool) SbBool cc_wpool_try_begin (cc_wpool *pool, int numworkersneeded) void cc_wpool_begin (cc_wpool *pool, int numworkersneeded) void cc_wpool_start_worker (cc_wpool *pool, cc_wpool_f *workfunc, void *closure) void cc_wpool_end (cc_wpool *pool)
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 finish int 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.