RE: Treating POSIX signals as exceptions?

Well, bracket doesn't work with concurrent programs even in the absense of signals (except in the main thread) so you don't lose anything there. If you write a concurrent program and want its threads to clean up, you always have to code that yourself, for example using a bracket in the main thread.
If you're referring to the fact that non-main concurrent threads aren't required to terminate before the program terminates, then I think you're placing the wrong emphasis by saying that "bracket doesn't work with concurrent programs". It works fine. Are there any situations in which the cleanup action in a bracket might not run? Sure: * the bracket is in a non-main thread and the program terminates * SIGKILL, SIGSEGV, etc. * Out of memory (should be an exception, but isn't) * Power failure * etc. etc. should we therefore say that bracket doesn't work? I argue not. Cheers, Simon
participants (1)
-
Simon Marlow