Skip to content

Commit 074d698

Browse files
committed
remove unnecessary task dispatch
1 parent 4c17544 commit 074d698

File tree

3 files changed

+22
-34
lines changed

3 files changed

+22
-34
lines changed

src/hxcoro/task/CoroBaseTask.hx

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11
package hxcoro.task;
22

3-
import hxcoro.continuations.FunctionContinuation;
4-
import hxcoro.concurrent.AtomicState;
5-
import hxcoro.concurrent.AtomicObject;
6-
import hxcoro.concurrent.BackOff;
7-
import hxcoro.elements.NonCancellable;
8-
import hxcoro.task.CoroTask;
9-
import hxcoro.task.node.INodeStrategy;
10-
import hxcoro.task.ICoroTask;
11-
import hxcoro.task.AbstractTask;
12-
import hxcoro.task.ICoroNode;
133
import haxe.Exception;
14-
import haxe.exceptions.CancellationException;
154
import haxe.coro.IContinuation;
5+
import haxe.coro.cancellation.CancellationToken;
166
import haxe.coro.context.Context;
17-
import haxe.coro.context.Key;
187
import haxe.coro.context.IElement;
19-
import haxe.coro.dispatchers.Dispatcher;
20-
import haxe.coro.cancellation.CancellationToken;
8+
import haxe.coro.context.Key;
9+
import haxe.exceptions.CancellationException;
10+
import hxcoro.concurrent.AtomicObject;
2111
import hxcoro.concurrent.ThreadSafeCallbacks;
12+
import hxcoro.continuations.FunctionContinuation;
13+
import hxcoro.elements.NonCancellable;
14+
import hxcoro.task.AbstractTask;
15+
import hxcoro.task.CoroTask;
16+
import hxcoro.task.ICoroNode;
17+
import hxcoro.task.ICoroTask;
18+
import hxcoro.task.node.INodeStrategy;
2219

2320
class TaskContinuationManager extends ThreadSafeCallbacks<IContinuation<Any>, IContinuation<Any>, IContinuation<Any>> {
2421
public function new(task:CoroBaseTask<Any>) {
@@ -85,9 +82,7 @@ abstract class CoroBaseTask<T> extends AbstractTask implements ICoroNode impleme
8582
Creates a child task to execute `lambda` and starts it automatically.
8683
**/
8784
public function async<T>(lambda:NodeLambda<T>):ICoroTask<T> {
88-
final child = new CoroTaskWithLambda<T>(context, lambda, CoroTask.CoroChildStrategy);
89-
context.get(Dispatcher).dispatch(child);
90-
return child;
85+
return new CoroTaskWithLambda<T>(context, lambda, CoroTask.CoroChildStrategy);
9186
}
9287

9388
/**

src/hxcoro/task/CoroTask.hx

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package hxcoro.task;
22

3+
import haxe.Exception;
4+
import haxe.coro.IContinuation;
5+
import haxe.coro.context.Context;
6+
import hxcoro.task.AbstractTask;
7+
import hxcoro.task.ICoroTask;
38
import hxcoro.task.node.CoroChildStrategy;
49
import hxcoro.task.node.CoroScopeStrategy;
510
import hxcoro.task.node.CoroSupervisorStrategy;
611
import hxcoro.task.node.INodeStrategy;
7-
import hxcoro.task.AbstractTask;
8-
import hxcoro.task.ICoroTask;
9-
import haxe.coro.IContinuation;
10-
import haxe.coro.context.Context;
11-
import haxe.coro.dispatchers.IDispatchObject;
12-
import haxe.Exception;
1312

1413
@:using(CoroTask.ResumeStatusTools)
1514
private enum abstract ResumeStatus(Int) to Int {
@@ -64,7 +63,7 @@ class CoroTask<T> extends CoroBaseTask<T> implements IContinuation<T> {
6463
#end
6564
}
6665

67-
class CoroTaskWithLambda<T> extends CoroTask<T> implements IDispatchObject implements IStartableCoroTask<T> {
66+
class CoroTaskWithLambda<T> extends CoroTask<T> implements IStartableCoroTask<T> {
6867
final lambda:NodeLambda<T>;
6968

7069
/**
@@ -75,10 +74,6 @@ class CoroTaskWithLambda<T> extends CoroTask<T> implements IDispatchObject imple
7574
super(context, nodeStrategy, initialState);
7675
}
7776

78-
public function onDispatch() {
79-
start();
80-
}
81-
8277
/**
8378
Starts executing this task's `lambda`. Has no effect if the task is already active or has completed.
8479
**/

src/hxcoro/util/Convenience.hx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package hxcoro.util;
22

3-
import hxcoro.task.CoroTask;
4-
import hxcoro.task.ICoroTask;
5-
import hxcoro.task.NodeLambda;
63
import haxe.Exception;
74
import haxe.Int64;
85
import haxe.coro.IContinuation;
@@ -13,6 +10,9 @@ import haxe.coro.dispatchers.Dispatcher;
1310
import haxe.coro.dispatchers.IDispatchObject;
1411
import haxe.exceptions.CancellationException;
1512
import hxcoro.continuations.FunctionContinuation;
13+
import hxcoro.task.CoroTask;
14+
import hxcoro.task.ICoroTask;
15+
import hxcoro.task.NodeLambda;
1616

1717
private class FunctionDispatchObject implements IDispatchObject {
1818
final func : ()->Void;
@@ -130,9 +130,7 @@ class ContextConvenience {
130130
}
131131

132132
static public function async<T>(context:Context, lambda:NodeLambda<T>):ICoroTask<T> {
133-
final child = new CoroTaskWithLambda<T>(context, lambda, CoroTask.CoroChildStrategy);
134-
context.get(Dispatcher).dispatch(child);
135-
return child;
133+
return new CoroTaskWithLambda<T>(context, lambda, CoroTask.CoroChildStrategy);
136134
}
137135

138136
static public function lazy<T>(context:Context, lambda:NodeLambda<T>):IStartableCoroTask<T> {

0 commit comments

Comments
 (0)