
Glenn Schrader wrote:
Ion,
I've run across an issue in the shared memory initialization sequence. In managed_open_or_create_impl.hpp at around line 291 there is a a try / catch that detects if creating a shared memory segment fails due to it already existing. This fails to work for programs compiled without exceptions. What happens is that any thrown exception causes an immediate program exit so the try / catch handler never gets a chance to act.
Glenn Schrader - MITLL _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
For the moment, Interprocess does not support programs compiled without exceptions. The issue is hard to solve, because we need to handle memory exhaustion issues on all shared memory containers, and there is no standard interface for that. I have plans to investigate how could I change Interprocess so that it can be used with no exceptions. I would need to start offering non-throwing alternatives in all constructors and maybe some hooks on STL-like allocators to handle memory exhaustion issues. But I'm afraid this effort won't be soon, because I'm buried on several issues. If you have any suggestion to make Interprocess compatible with no exceptions, let me know. Regards, Ion