File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed
sdks/python/apache_beam/runners/portability Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -72,14 +72,22 @@ def __init__(self, job_server):
7272 self ._lock = threading .Lock ()
7373 self ._job_server = job_server
7474 self ._started = False
75+ # save original signal handler
76+ self ._original_sigint_handler = signal .getsignal (signal .SIGINT )
77+
78+ def _sigint_handler (self , sig , frame ):
79+ self .stop ()
80+ if callable (self ._original_sigint_handler ):
81+ # call original signal handler to handle sigint gracefully
82+ self ._original_sigint_handler (sig , frame )
7583
7684 def start (self ):
7785 with self ._lock :
7886 if not self ._started :
7987 self ._endpoint = self ._job_server .start ()
8088 self ._started = True
8189 atexit .register (self .stop )
82- signal .signal (signal .SIGINT , self .stop )
90+ signal .signal (signal .SIGINT , self ._sigint_handler )
8391 return self ._endpoint
8492
8593 def stop (self ):
You can’t perform that action at this time.
0 commit comments