Receive unexpected signal on MacOS Big Sur 11.4(Apple M1)
tubzby opened this issue · comments
version: 0.3.9
in main entry:
let mut signals = Signals::new(&[SIGINT, SIGTERM]);
thread::spawn(move || {
for sig in &mut signals {
error!("receive signal:{:?} ", sig);
process::exit(0);
}
});
As soon as I start the program, it receive a signal and quit program with output:
[2021-07-09T00:57:56Z ERROR modbus_test] receive signal:Signals(SignalDelivery { read: UnixStream { fd: 3, local: (unnamed), peer: (unnamed) }, handle: Handle { pending: PendingSignals { exfiltrator: SignalOnly, slots: [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false] }, write: UnixStream { fd: 4, local: (unnamed), peer: (unnamed) }, delivery_state: DeliveryState { closed: false, registered_signal_ids: Mutex { data: [None, None, Some(SigId { signal: 2, action: ActionId(1) }), None, None, None, None, None, None, None, None, None, None, None, None, Some(SigId { signal: 15, action: ActionId(2) }), None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], poisoned: false, .. } } }, pending: PendingSignals { exfiltrator: SignalOnly, slots: [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false] } })
Hello
This seems suspicious. This thing printed here is not one signal, but the whole Signals
iterator. I suspect your signals
variable is of type Result<Signals, _>
and you're iterating oven the result.
Notice the example here uses the question mark to propagate the error (at the Signals::new
).