[Mono-bugs] [Bug 55131][Nor] Changed - Thread.Abort() is causing a crash

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Wed, 31 Mar 2004 14:14:36 -0500 (EST)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by vargaz@freemail.hu.

http://bugzilla.ximian.com/show_bug.cgi?id=55131

--- shadow/55131	2004-03-31 13:45:01.000000000 -0500
+++ shadow/55131.tmp.20182	2004-03-31 14:14:36.000000000 -0500
@@ -97,6 +97,30 @@
 
 Unfortunately I can't find any gcc documentation for this feature.
 
 
 
 
+
+------- Additional Comments From vargaz@freemail.hu  2004-03-31 14:14 -------
+The problem here is that the __frame_state_for () function, which is
+in glibc, can't handle the stack frame of pthread_cond_wait for some
+reason so it crashes. The solution is to get rid of the 
+MONO_USE_EXC_TABLES stuff, which is a giant hack.
+An alternative soluation would be to handle async exceptions like
+Thread.Abort differently when the receiving thread is in native code.
+The current solution does not really work, since the thread can be
+in _any_ state when receiving the signal, it can hold unmanaged locks,
+it can be inside functions which are not async signal safe, like
+GC_malloc etc. An alternative would be to note the signal somewhere,
+let execution continue, then raise the exception when control 
+returns to managed code. That would solve all the weird problems with
+Thread.Abort.
+
+
+
+
+
+
+
+
+