Part of twisted.internet.task View Source View In Hierarchy
CooperativeTask
is a task object inside a Cooperator
,
which can be paused, resumed, and stopped. It can also have its completion
(or termination) monitored.
Instance Variables | _iterator | the iterator to iterate when this CooperativeTask
is asked to do work.
|
_cooperator | the Cooperator
that this CooperativeTask
participates in, which is used to re-insert it upon resume.
| |
_deferreds | the list of defer.Deferred s
to fire when this task completes, fails, or finishes.
(type: list
) | |
_pauseCount | the number of times that this CooperativeTask
has been paused; if 0, it is running.
(type: int
) | |
_completionState | The completion-state of this CooperativeTask .
None if the task is not yet completed, an instance of TaskStopped
if stop was called to stop this task early, of TaskFailed if
the application code in the iterator raised an exception which caused it to
terminate, and of TaskDone if it
terminated normally via raising StopIteration .
(type: TaskFinished
) | |
See Also | CooperativeTask.cooperate
|
Method | __init__ | A private constructor: to create a new CooperativeTask ,
see Cooperator.cooperate .
|
Method | whenDone | Get a defer.Deferred
notification of when this task is complete.
|
Method | pause | No summary |
Method | resume | Resume processing of a paused CooperativeTask .
|
Method | stop | Stop further processing of this task. |
Method | _completeWith | |
Method | _checkFinish | If this task has been stopped, raise the appropriate subclass of TaskFinished .
|
Method | _oneWorkUnit | Perform one unit of work for this task, retrieving one item from its
iterator, stopping if there are no further items in the iterator, and
pausing if the result was a defer.Deferred .
|
defer.Deferred
notification of when this task is complete.
Returns | a defer.Deferred
that fires with the iterator that this CooperativeTask
was created with when the iterator has been exhausted (i.e. its
next method has raised StopIteration ), or fails
with the exception raised by next if it raises some other
exception.
(type: defer.Deferred
) |
CooperativeTask
.
Stop doing work until CooperativeTask.resume
is called. If pause
is called more than once,
resume
must be called an equal number of times to resume this
task.
Raises | TaskFinished | if this task has already finished or completed. |
CooperativeTask
.
Raises | NotPaused | if this CooperativeTask
is not paused.
|
Parameters | completionState | a TaskFinished
exception or a subclass thereof, indicating what exception should be raised
when subsequent operations are performed.
|
deferredResult | the result to fire all the deferreds with. |
Raises | TaskFinished | if this CooperativeTask
has previously completed, via stop , completion, or
failure.
|
TaskFinished
.
defer.Deferred
.