Hi,
I have a situation that need some advice. I have a main loop that is
calling some C code (potentially looping forever). and I need to handle
signals like SIGABRT correctly by ensuring a cleanup function was run.
func main() {
cleanup := func() {}
defer cleanup()
for {
C.do_something()
}
}
now , this works for synchronous signal / or anything caused by C code,
because they will generate runtime panic on main thread, and deferred
cleanup function will run.
However, if I send signal through kill, the signal arrived in another
thread, and apparently , main()'s defered functions was never called , how
do I catch that situation ? I tried with a custom signal handler, but
since I am busy looping in C code, I can't invoke panic() on the main
thread.
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.