https://bugzilla.novell.com/show_bug.cgi?id=417871


           Summary: Thread.Abort() not working correctly.
           Product: Mono: Class Libraries
           Version: 1.9
          Platform: x86
        OS/Version: Windows XP
            Status: NEW
          Keywords: tc
          Severity: Major
          Priority: P5 - None
         Component: System
        AssignedTo: [email protected]
        ReportedBy: [EMAIL PROTECTED]
         QAContact: [email protected]
          Found By: Third Party Developer/Partner


Problem:
Calling Thread.Abort() isn't causing a ThreadAbortException on the target
thread as it should.

To Reproduce:
See the attached test case (with comments for correct/incorrect behaviour).

This works on DotNet2.0 (WinXP), but not on Mono 1.9.1 (WinXP).

Real World Usage:
We're using the Abort mechanism in a plugin framework as a way to shutdown
slow/frozen plugins running on the same thread as the host (for low latency
reasons). We simply catch the ThreadAbortException, call Thread.ResetAbort,
remove the blocked plugin, then continue.

Since the cross-thread exception triggering behaviour of Thread.Abort is
unique, there's no simple workaround. This is a real show-stopper for us.

Additional Info:
Strangely, adding a Thread.Sleep in the threads code makes it work on Mono, but
clearly that shouldn't be required.
(Note, the example given by the MS ThreadAbortException documentation happens
to have a Thread.Sleep, so it won't show the problem.)

Many thanks for your time.


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to