@@ -44,30 +44,34 @@ func NewMonoprocessBackend(b backend.Backend, signalBufferSize int, signalTimeou
44
44
}
45
45
46
46
func (b * monoprocessBackend ) GetWorkflowTask (ctx context.Context ) (* task.Workflow , error ) {
47
- if w , err := b .Backend .GetWorkflowTask (ctx ); w != nil || err != nil {
48
- return w , err
49
- }
50
- b .logger .DebugContext (ctx , "worker waiting for workflow task signal" )
51
- select {
52
- case <- ctx .Done ():
53
- return nil , ctx .Err ()
54
- case <- b .workflowSignal :
55
- b .logger .DebugContext (ctx , "worker got a workflow task signal" )
56
- return b .GetWorkflowTask (ctx )
47
+ // loop until either we find a task or the context is cancelled
48
+ for {
49
+ if w , err := b .Backend .GetWorkflowTask (ctx ); w != nil || err != nil {
50
+ return w , err
51
+ }
52
+ b .logger .DebugContext (ctx , "worker waiting for workflow task signal" )
53
+ select {
54
+ case <- ctx .Done ():
55
+ return nil , ctx .Err ()
56
+ case <- b .workflowSignal :
57
+ b .logger .DebugContext (ctx , "worker got a workflow task signal" )
58
+ }
57
59
}
58
60
}
59
61
60
62
func (b * monoprocessBackend ) GetActivityTask (ctx context.Context ) (* task.Activity , error ) {
61
- if a , err := b .Backend .GetActivityTask (ctx ); a != nil || err != nil {
62
- return a , err
63
- }
64
- b .logger .DebugContext (ctx , "worker waiting for activity task signal" )
65
- select {
66
- case <- ctx .Done ():
67
- return nil , ctx .Err ()
68
- case <- b .activitySignal :
69
- b .logger .DebugContext (ctx , "worker got an activity task signal" )
70
- return b .GetActivityTask (ctx )
63
+ // loop until either we find a task or the context is cancelled
64
+ for {
65
+ if a , err := b .Backend .GetActivityTask (ctx ); a != nil || err != nil {
66
+ return a , err
67
+ }
68
+ b .logger .DebugContext (ctx , "worker waiting for activity task signal" )
69
+ select {
70
+ case <- ctx .Done ():
71
+ return nil , ctx .Err ()
72
+ case <- b .activitySignal :
73
+ b .logger .DebugContext (ctx , "worker got an activity task signal" )
74
+ }
71
75
}
72
76
}
73
77
0 commit comments