Perhaps there is something I'm missing. Here is what I have got from what you have said:
If something is reentrant then it can be called again without waiting for the previous invocation. So if we assume that my UnhandledException event handler is reentrant (since it doesn't access global data etc.) then it can be executed concurrently. The Monitor class (and subsequently lock()) is also reentrant. This is good because since my event handler calls lock() it maintains it's own reentrant property. Ok so the same thread will not block waiting for a lock that it already has, which is a nice property. Now the point that looses me completely... the thread never leaves my event handler so how can it reenter it? The thread calls Dialog.Run() which is meant to block. If this blocks then how can the same blocked thread reenter the event handler? -- View this message in context: http://mono.1490590.n4.nabble.com/Creating-critical-section-for-unhandled-exception-handler-tp2225522p2228076.html Sent from the Mono - Gtk# mailing list archive at Nabble.com. _______________________________________________ Gtk-sharp-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
