Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
StopAndGoSpoolingTask.cs
Go to the documentation of this file.
1
using
System.Threading
;
2
3
namespace
System.Linq.Parallel
;
4
5
internal
sealed
class
StopAndGoSpoolingTask
<TInputOutput, TIgnoreKey> :
SpoolingTaskBase
6
{
7
private
readonly
QueryOperatorEnumerator<TInputOutput, TIgnoreKey>
_source
;
8
9
private
readonly
SynchronousChannel<TInputOutput>
_destination
;
10
11
internal
StopAndGoSpoolingTask
(
int
taskIndex,
QueryTaskGroupState
groupState,
QueryOperatorEnumerator<TInputOutput, TIgnoreKey>
source
,
SynchronousChannel<TInputOutput>
destination
)
12
: base(taskIndex, groupState)
13
{
14
_source
=
source
;
15
_destination
=
destination
;
16
}
17
18
protected
override
void
SpoolingWork
()
19
{
20
TInputOutput currentElement =
default
(TInputOutput);
21
TIgnoreKey currentKey =
default
(TIgnoreKey);
22
QueryOperatorEnumerator<TInputOutput, TIgnoreKey>
source
=
_source
;
23
SynchronousChannel<TInputOutput>
destination
=
_destination
;
24
CancellationToken
mergedCancellationToken =
_groupState
.
CancellationState
.
MergedCancellationToken
;
25
destination
.Init();
26
while
(
source
.MoveNext(ref currentElement, ref currentKey) && !mergedCancellationToken.
IsCancellationRequested
)
27
{
28
destination
.Enqueue(currentElement);
29
}
30
}
31
32
protected
override
void
SpoolingFinally
()
33
{
34
base.SpoolingFinally();
35
if
(
_destination
!=
null
)
36
{
37
_destination
.
SetDone
();
38
}
39
_source
.
Dispose
();
40
}
41
}
System.Linq.Parallel.CancellationState.MergedCancellationToken
CancellationToken MergedCancellationToken
Definition
CancellationState.cs:16
System.Linq.Parallel.QueryOperatorEnumerator.Dispose
void Dispose()
Definition
QueryOperatorEnumerator.cs:44
System.Linq.Parallel.QueryOperatorEnumerator
Definition
QueryOperatorEnumerator.cs:8
System.Linq.Parallel.QueryTaskGroupState.CancellationState
CancellationState CancellationState
Definition
QueryTaskGroupState.cs:18
System.Linq.Parallel.QueryTaskGroupState
Definition
QueryTaskGroupState.cs:7
System.Linq.Parallel.QueryTask._groupState
QueryTaskGroupState _groupState
Definition
QueryTask.cs:10
System.Linq.Parallel.SpoolingTaskBase
Definition
SpoolingTaskBase.cs:4
System.Linq.Parallel.StopAndGoSpoolingTask.StopAndGoSpoolingTask
StopAndGoSpoolingTask(int taskIndex, QueryTaskGroupState groupState, QueryOperatorEnumerator< TInputOutput, TIgnoreKey > source, SynchronousChannel< TInputOutput > destination)
Definition
StopAndGoSpoolingTask.cs:11
System.Linq.Parallel.StopAndGoSpoolingTask._source
readonly QueryOperatorEnumerator< TInputOutput, TIgnoreKey > _source
Definition
StopAndGoSpoolingTask.cs:7
System.Linq.Parallel.StopAndGoSpoolingTask.SpoolingWork
override void SpoolingWork()
Definition
StopAndGoSpoolingTask.cs:18
System.Linq.Parallel.StopAndGoSpoolingTask.SpoolingFinally
override void SpoolingFinally()
Definition
StopAndGoSpoolingTask.cs:32
System.Linq.Parallel.StopAndGoSpoolingTask._destination
readonly SynchronousChannel< TInputOutput > _destination
Definition
StopAndGoSpoolingTask.cs:9
System.Linq.Parallel.StopAndGoSpoolingTask
Definition
StopAndGoSpoolingTask.cs:6
System.Linq.Parallel.SynchronousChannel.SetDone
void SetDone()
Definition
SynchronousChannel.cs:30
System.Linq.Parallel.SynchronousChannel
Definition
SynchronousChannel.cs:6
System.Linq.Parallel
Definition
AnyAllSearchOperator.cs:5
System.Linq.ExceptionArgument.source
@ source
System.Threading
Definition
TaskToApm.cs:3
System.ExceptionArgument.destination
@ destination
System.Threading.CancellationToken.IsCancellationRequested
bool IsCancellationRequested
Definition
CancellationToken.cs:14
System.Threading.CancellationToken
Definition
CancellationToken.cs:8
source
System.Linq.Parallel
System.Linq.Parallel
StopAndGoSpoolingTask.cs
Generated by
1.10.0