# ``twisted`.`_threads`.`Team``

class documentation

`class Team: (source)`

Implements interfaces: `twisted._threads.IWorker`

View In Hierarchy

A composite `IWorker` implementation.

Method | `__init__` | No summary
Method | `do` | Perform some work in a worker created by `createWorker`.
Method | `grow` | Increase the the number of idle workers by `n`.
Method | `quit` | Stop doing work and shut down all idle workers.
Method | `shrink` | Decrease the number of idle workers by `n`.
Method | `statistics` | Gather information on the current status of this `Team`.
Method | `_coordinateThisTask` | Select a worker to dispatch to, either an idle one or a new one, and perform it.
Method | `_quitIdlers` | The implmentation of `shrink`, performed by the coordinator worker.
Method | `_recycleWorker` | Called only from coordinator.
Instance Variable | `_busyCount` | the number of workers currently busy.
Instance Variable | `_coordinator` | the `IExclusiveWorker` coordinating access to this `Team`'s internal resources.
Instance Variable | `_createWorker` | a callable that will create new workers.
Instance Variable | `_idle` | a `set` of idle workers.
Instance Variable | `_logException` | a 0-argument callable called in an exception context when there is an unhandled error from a task passed to `Team.do`
Instance Variable | `_pending` | a `deque` of tasks - that is, 0-argument callables passed to `Team.do` - that are outstanding.
Instance Variable | `_quit` | A `Quit` flag indicating whether this `Team` has been quit yet. This may be set by an arbitrary thread since `Team.quit` may be called from anywhere.
Instance Variable | `_shouldQuitCoordinator` | A flag indicating that the coordinator should be quit at the next available opportunity. Unlike `Team._quit`, this flag is only set by the coordinator.
Instance Variable | `_toShrink` | the number of workers to shrink this `Team` by at the next available opportunity; set in the coordinator.

def __init__(self, coordinator, createWorker, logException): (source)

Parameters
coordinator | an `IExclusiveWorker` which will coordinate access to resources on this `Team`; that is to say, an `IExclusiveWorker` whose `do` method ensures that its given work will be executed in a mutually exclusive context, not in parallel with other work enqueued by `do` (although possibly in parallel with the caller).
createWorker | A 0-argument callable that will create an `IWorker` to perform work.
logException | A 0-argument callable called in an exception context when the work passed to `do` raises an exception.

def do(self, task): (source)
from `twisted._threads.IWorker`
Perform some work in a worker created by `createWorker`.

Parameters
task | the callable to run

def grow(self, n): (source)
Increase the the number of idle workers by `n`.

Parameters
n:`int` | The number of new idle workers to create.

def quit(self): (source)
from `twisted._threads.IWorker`
Stop doing work and shut down all idle workers.
def shrink(self, n=None): (source)
Decrease the number of idle workers by `n`.

Parameters
n:`int` or `None` | The number of idle workers to shut down, or `None` (or unspecified) to shut down all workers.

def statistics(self): (source)
Gather information on the current status of this `Team`.

Returns
a `Statistics` describing the current state of this `Team`.

def _coordinateThisTask(self, task): (source)

Select a worker to dispatch to, either an idle one or a new one, and perform it.

This method should run on the coordinator worker.

Parameters
task:0-argument callable | the task to dispatch

def _quitIdlers(self, n=None): (source)
The implmentation of `shrink`, performed by the coordinator worker.

Parameters
n | see `Team.shrink`

def _recycleWorker(self, worker): (source)

Called only from coordinator.

Recycle the given worker into the idle pool.

Parameters
worker:`IWorker` | a worker created by `createWorker` and now idle.

_busyCount: `int` = (source)
the number of workers currently busy.
_coordinator = (source)
the `IExclusiveWorker` coordinating access to this `Team`'s internal resources.
_createWorker = (source)
a callable that will create new workers.
_idle: `set` = (source)
a `set` of idle workers.
_logException = (source)
a 0-argument callable called in an exception context when there is an unhandled error from a task passed to `Team.do`
_pending = (source)
a `deque` of tasks - that is, 0-argument callables passed to `Team.do` - that are outstanding.
_quit = (source)
A `Quit` flag indicating whether this `Team` has been quit yet. This may be set by an arbitrary thread since `Team.quit` may be called from anywhere.
_shouldQuitCoordinator: `bool` = (source)
A flag indicating that the coordinator should be quit at the next available opportunity. Unlike `Team._quit`, this flag is only set by the coordinator.
_toShrink: `int` = (source)
the number of workers to shrink this `Team` by at the next available opportunity; set in the coordinator.