@@ -368,7 +368,13 @@ func (ww *workflowWorker) Run() error {
368
368
369
369
// Shutdown the worker.
370
370
func (ww * workflowWorker ) Stop () {
371
- close (ww .stopC )
371
+ select {
372
+ case <- ww .stopC :
373
+ // channel is already closed
374
+ default :
375
+ close (ww .stopC )
376
+ }
377
+
372
378
// TODO: remove the stop methods in favor of the workerStopChannel
373
379
ww .localActivityWorker .Stop ()
374
380
ww .worker .Stop ()
@@ -520,7 +526,13 @@ func (aw *activityWorker) Run() error {
520
526
521
527
// Shutdown the worker.
522
528
func (aw * activityWorker ) Stop () {
523
- close (aw .stopC )
529
+ select {
530
+ case <- aw .stopC :
531
+ // channel is already closed
532
+ default :
533
+ close (aw .stopC )
534
+ }
535
+
524
536
aw .worker .Stop ()
525
537
}
526
538
@@ -785,26 +797,30 @@ func (aw *aggregatedWorker) Start() error {
785
797
786
798
if ! isInterfaceNil (aw .workflowWorker ) {
787
799
if len (aw .registry .getRegisteredWorkflowTypes ()) == 0 {
788
- aw .logger .Warn (
789
- "Starting worker without any workflows. Workflows must be registered before start ." ,
800
+ aw .logger .Info (
801
+ "Worker has no workflows registered, so workflow worker will not be started ." ,
790
802
)
803
+ } else {
804
+ if err := aw .workflowWorker .Start (); err != nil {
805
+ return err
806
+ }
791
807
}
792
- if err := aw .workflowWorker .Start (); err != nil {
793
- return err
794
- }
808
+ aw .logger .Info ("Started Workflow Worker" )
795
809
}
796
810
if ! isInterfaceNil (aw .activityWorker ) {
797
811
if len (aw .registry .getRegisteredActivities ()) == 0 {
798
- aw .logger .Warn (
799
- "Starting worker without any activities. Activities must be registered before start ." ,
812
+ aw .logger .Info (
813
+ "Worker has no activities registered, so activity worker will not be started ." ,
800
814
)
801
- }
802
- if err := aw .activityWorker .Start (); err != nil {
803
- // stop workflow worker.
804
- if ! isInterfaceNil (aw .workflowWorker ) {
805
- aw .workflowWorker .Stop ()
815
+ } else {
816
+ if err := aw .activityWorker .Start (); err != nil {
817
+ // stop workflow worker.
818
+ if ! isInterfaceNil (aw .workflowWorker ) {
819
+ aw .workflowWorker .Stop ()
820
+ }
821
+ return err
806
822
}
807
- return err
823
+ aw . logger . Info ( "Started Activity Worker" )
808
824
}
809
825
}
810
826
@@ -821,7 +837,6 @@ func (aw *aggregatedWorker) Start() error {
821
837
}
822
838
}
823
839
824
- aw .logger .Info ("Started Worker" )
825
840
return nil
826
841
}
827
842
0 commit comments