| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# csThreadJobQueue Class Reference

iJobQueue implementation that lets the jobs run in a thread. More...

`#include <csutil/threadjobqueue.h>`

Inheritance diagram for csThreadJobQueue:

[legend]
List of all members.

## Public Member Functions
virtual void | Enqueue (iJob *job)
| Add a job to the queue.
virtual void | PullAndRun (iJob *job)
| Check if a job is still in the queue.
virtual void | Unqueue (iJob *job, bool waitIfCurrent=true)
| Remove a job from the queue.

## Detailed Description

iJobQueue implementation that lets the jobs run in a thread.

Definition at line 36 of file threadjobqueue.h.

## Member Function Documentation

virtual void csThreadJobQueue::Enqueue | ( | iJob * | job | ) | `[virtual]`

Add a job to the queue.

Implements iJobQueue.

virtual void csThreadJobQueue::PullAndRun | ( | iJob * | job | ) | `[virtual]`

Check if a job is still in the queue.

If yes, remove it from the queue and run it immediately.

Implements iJobQueue.

virtual void csThreadJobQueue::Unqueue | ( | iJob * | job,
|  | bool | waitIfCurrent = `true` |
| ) |  |  | `[virtual]`

Remove a job from the queue.

If the job is currently running and waitIfCurrent is true, wait until the job has finished. This guarantees that the queue won't hold any reference to the job object.

Implements iJobQueue.

The documentation for this class was generated from the following file:

- csutil/threadjobqueue.h