@@ -191,13 +191,23 @@ fn decode(pid : pid_t, status: i32) -> WaitStatus {
191
191
} else if status:: signaled ( status) {
192
192
WaitStatus :: Signaled ( pid, status:: term_signal ( status) , status:: dumped_core ( status) )
193
193
} else if status:: stopped ( status) {
194
- #[ cfg( any( target_os = "linux" , target_os = "android" ) ) ] {
195
- let status_additional = status:: stop_additional ( status) ;
196
- if status_additional != 0 {
197
- return WaitStatus :: PtraceEvent ( pid, status:: stop_signal ( status) , status:: stop_additional ( status) )
194
+ cfg_if ! {
195
+ if #[ cfg( any( target_os = "linux" , target_os = "android" ) ) ] {
196
+ fn decode_stopped( pid: pid_t, status: i32 ) -> WaitStatus {
197
+ let status_additional = status:: stop_additional( status) ;
198
+ if status_additional == 0 {
199
+ WaitStatus :: Stopped ( pid, status:: stop_signal( status) )
200
+ } else {
201
+ WaitStatus :: PtraceEvent ( pid, status:: stop_signal( status) , status:: stop_additional( status) )
202
+ }
203
+ }
204
+ } else {
205
+ fn decode_stopped( pid: pid_t, status: i32 ) -> WaitStatus {
206
+ WaitStatus :: Stopped ( pid, status:: stop_signal( status) )
207
+ }
198
208
}
199
209
}
200
- WaitStatus :: Stopped ( pid, status:: stop_signal ( status ) )
210
+ decode_stopped ( pid, status)
201
211
} else {
202
212
assert ! ( status:: continued( status) ) ;
203
213
WaitStatus :: Continued ( pid)
0 commit comments