[Mono-bugs] [Bug 417871] New: Thread.Abort() not working correctly.

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Aug 17 15:21:37 EDT 2008


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: mono-bugs at lists.ximian.com
        ReportedBy: dale at zipibackup.com
         QAContact: mono-bugs at lists.ximian.com
          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.


More information about the mono-bugs mailing list