File tree Expand file tree Collapse file tree 2 files changed +35
-39
lines changed Expand file tree Collapse file tree 2 files changed +35
-39
lines changed Original file line number Diff line number Diff line change @@ -52,7 +52,7 @@ func (aw *activityWorker) Start(ctx context.Context) error {
52
52
go aw .runPoll (ctx )
53
53
}
54
54
55
- go aw .runDispatcher (ctx )
55
+ go aw .runDispatcher (context . Background () )
56
56
57
57
return nil
58
58
}
@@ -90,28 +90,25 @@ func (aw *activityWorker) runDispatcher(ctx context.Context) {
90
90
sem = make (chan struct {}, aw .options .MaxParallelActivityTasks )
91
91
}
92
92
93
- for {
94
- select {
95
- case <- ctx .Done ():
96
- return
97
- case task := <- aw .activityTaskQueue :
98
- if sem != nil {
99
- sem <- struct {}{}
100
- }
93
+ for task := range aw .activityTaskQueue {
94
+ if sem != nil {
95
+ sem <- struct {}{}
96
+ }
101
97
102
- aw .wg .Add (1 )
103
- go func () {
104
- defer aw .wg .Done ()
98
+ task := task
105
99
106
- // Create new context to allow activities to complete when root context is canceled
107
- taskCtx := context . Background ()
108
- aw .handleTask ( taskCtx , task )
100
+ aw . wg . Add ( 1 )
101
+ go func () {
102
+ defer aw .wg . Done ( )
109
103
110
- if sem != nil {
111
- <- sem
112
- }
113
- }()
114
- }
104
+ // Create new context to allow activities to complete when root context is canceled
105
+ taskCtx := context .Background ()
106
+ aw .handleTask (taskCtx , task )
107
+
108
+ if sem != nil {
109
+ <- sem
110
+ }
111
+ }()
115
112
}
116
113
}
117
114
Original file line number Diff line number Diff line change @@ -66,7 +66,7 @@ func (ww *workflowWorker) Start(ctx context.Context) error {
66
66
go ww .runPoll (ctx )
67
67
}
68
68
69
- go ww .runDispatcher (ctx )
69
+ go ww .runDispatcher ()
70
70
71
71
return nil
72
72
}
@@ -99,33 +99,32 @@ func (ww *workflowWorker) runPoll(ctx context.Context) {
99
99
}
100
100
}
101
101
102
- func (ww * workflowWorker ) runDispatcher (ctx context. Context ) {
102
+ func (ww * workflowWorker ) runDispatcher () {
103
103
var sem chan (struct {})
104
104
105
105
if ww .options .MaxParallelWorkflowTasks > 0 {
106
106
sem = make (chan struct {}, ww .options .MaxParallelWorkflowTasks )
107
107
}
108
108
109
- for {
110
- select {
111
- case <- ctx .Done ():
112
- return
113
- case t := <- ww .workflowTaskQueue :
114
- if sem != nil {
115
- sem <- struct {}{}
116
- }
109
+ for t := range ww .workflowTaskQueue {
110
+ if sem != nil {
111
+ sem <- struct {}{}
112
+ }
117
113
118
- ww .wg .Add (1 )
119
- go func () {
120
- defer ww .wg .Done ()
114
+ t := t
121
115
122
- ww .handle (ctx , t )
116
+ ww .wg .Add (1 )
117
+ go func () {
118
+ defer ww .wg .Done ()
123
119
124
- if sem != nil {
125
- <- sem
126
- }
127
- }()
128
- }
120
+ // Create new context to allow workflows to complete when root context is canceled
121
+ taskCtx := context .Background ()
122
+ ww .handle (taskCtx , t )
123
+
124
+ if sem != nil {
125
+ <- sem
126
+ }
127
+ }()
129
128
}
130
129
}
131
130
You can’t perform that action at this time.
0 commit comments