Specifies that this suspension does not write to the data output stream.
Specifies that this suspension does not write to the data output stream.
Override in TargetLengthOperation,and in SuspendableExpression as they don't write to the DOS hence, if a DOS is created it can be setFinished immediately.
TODO: Redundant with implementing maybeKnownLengthInBits as MaybeULong(0L)
Run the first time.
After calling this, call isDone and if that's false call isMakingProgress to understand whether it is done, blocked on the exactly same situation, or blocked elsewhere.
After calling this, call isDone and if that's false call isMakingProgress to understand whether it is done, blocked on the exactly same situation, or blocked elsewhere.
This status is needed to implement circular deadlock detection
The suspension object keeps track of the state of the task, i.e., whether it is done, whether it is making forward progress when run or not.
A suspension" may block, by which we mean it may set isDone to false, and return.
Running the suspension again tries again and will either block or complete.