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.