I'm able to register a callback function using signal in libc, see the code below.
SIGINT=2 function catch_function(x) println("caught signal $x") exit(0)::Nothing end catch_function_c = cfunction(catch_function, None, (Int64,)) ccall((:signal, "libc"), Void, (Int64, Ptr{Void}), SIGINT, catch_function_c) while true sleep(1) end On Tuesday, 17 June 2014 09:24:43 UTC-3, Stephen Chisholm wrote: > > I'm able to catch the InterruptException with the code below when running > in the REPL, but it doesn't seem to get thrown when running the code in a > script. > > while true > try sleep(1) > println("running...") > catch err > println("error: $err") > end > end > > > On Monday, 16 June 2014 18:30:36 UTC-3, Ivar Nesje wrote: >> >> SIGINT gets converted to a InterruptException, that can be caught in a >> catch statement. If you happened to be in a ccall, you might cause your >> program to be in a corrupt state and leak resources such as memory. >> >> I'm not sure how you can interact with other signals. >> >