File tree 3 files changed +17
-14
lines changed
Filter options
3 files changed +17
-14
lines changed
Original file line number Diff line number Diff line change 2
2
3
3
setup (
4
4
name = 'stackimpact' ,
5
- version = '1.0.1 ' ,
5
+ version = '1.0.2 ' ,
6
6
description = 'StackImpact Python Agent' ,
7
7
author = 'StackImpact' ,
8
8
author_email = 'devops@stackimpact.com' ,
Original file line number Diff line number Diff line change 26
26
27
27
class Agent :
28
28
29
- AGENT_VERSION = "1.0.1 "
29
+ AGENT_VERSION = "1.0.2 "
30
30
SAAS_DASHBOARD_ADDRESS = "https://agent-api.stackimpact.com"
31
31
32
32
def __init__ (self , ** kwargs ):
@@ -128,10 +128,10 @@ def _exit_handler(*arg):
128
128
129
129
atexit .register (_exit_handler )
130
130
131
- register_signal (signal .SIGQUIT , _exit_handler )
132
- register_signal (signal .SIGINT , _exit_handler )
133
- register_signal (signal .SIGTERM , _exit_handler )
134
- register_signal (signal .SIGHUP , _exit_handler )
131
+ register_signal (signal .SIGQUIT , _exit_handler , ignore_default = False )
132
+ register_signal (signal .SIGINT , _exit_handler , ignore_default = False )
133
+ register_signal (signal .SIGTERM , _exit_handler , ignore_default = False )
134
+ register_signal (signal .SIGHUP , _exit_handler , ignore_default = False )
135
135
136
136
self .agent_started = True
137
137
self .log ('Agent started' )
Original file line number Diff line number Diff line change @@ -120,15 +120,18 @@ def unpatch(obj, func_name):
120
120
setattr (obj , func_name , getattr (wrapper , '__stackimpact_orig__' ))
121
121
122
122
123
- def register_signal (signal_number , handler_func ):
124
- prev_handler = signal .SIG_IGN
123
+ def register_signal (signal_number , handler_func , ignore_default = True ):
124
+ prev_handler = None
125
+
125
126
def _handler (signum , frame ):
126
127
skip_prev = handler_func (signum , frame )
127
128
128
- if not skip_prev and prev_handler not in [ signal . SIG_IGN , signal . SIG_DFL ] and callable ( prev_handler ) :
129
- prev_handler ( signum , frame )
130
-
131
- prev_handler = signal .signal ( signal_number , signal . SIG_IGN )
132
- if prev_handler != signal .SIG_IGN :
133
- signal . signal ( signal_number , _handler )
129
+ if not skip_prev :
130
+ if callable ( prev_handler ):
131
+ prev_handler ( signum , frame )
132
+ elif prev_handler == signal .SIG_DFL and not ignore_default :
133
+ signal .signal ( signum , signal . SIG_DFL )
134
+ os . kill ( os . getpid (), signum )
134
135
136
+ prev_handler = signal .signal (signal_number , _handler )
137
+
You can’t perform that action at this time.
0 commit comments