@@ -191,13 +191,23 @@ fn decode(pid : pid_t, status: i32) -> WaitStatus {
191191 } else if status:: signaled ( status) {
192192 WaitStatus :: Signaled ( pid, status:: term_signal ( status) , status:: dumped_core ( status) )
193193 } 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+ }
198208 }
199209 }
200- WaitStatus :: Stopped ( pid, status:: stop_signal ( status ) )
210+ decode_stopped ( pid, status)
201211 } else {
202212 assert ! ( status:: continued( status) ) ;
203213 WaitStatus :: Continued ( pid)
0 commit comments