mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-09 23:40:42 +00:00
Add a method to wait for all pending items in a ThreadPool.
This commit is contained in:
parent
7b2cb8d04f
commit
0995520d6f
2 changed files with 41 additions and 1 deletions
|
|
@ -264,6 +264,9 @@ class ThreadPool
|
|||
|
||||
/// Number of worker threads guaranteed to be non-blocking.
|
||||
U32 mNumThreadsReady;
|
||||
|
||||
/// Number of work items that have not yet completed execution.
|
||||
U32 mNumPendingItems;
|
||||
|
||||
/// Semaphore used to wake up threads, if necessary.
|
||||
Semaphore mSemaphore;
|
||||
|
|
@ -316,6 +319,18 @@ class ThreadPool
|
|||
/// the queue to flush out. -1 = infinite.
|
||||
void flushWorkItems( S32 timeOut = -1 );
|
||||
|
||||
/// If you're using a non-global thread pool to parallelise some work, you
|
||||
/// may want to block until all the parallel work is complete. As with
|
||||
/// flushWorkItems, this method may block indefinitely if new items keep
|
||||
/// getting added to the pool before old ones finish.
|
||||
///
|
||||
/// <em>This method will not wait for items queued on the main thread using
|
||||
/// queueWorkItemOnMainThread!</em>
|
||||
///
|
||||
/// @param timeOut Soft limit on the number of milliseconds to wait for
|
||||
/// all items to complete. -1 = infinite.
|
||||
void waitForAllItems( S32 timeOut = -1 );
|
||||
|
||||
/// Add a work item to the main thread's work queue.
|
||||
///
|
||||
/// The main thread's work queue will be processed each frame using
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue