[Mono-list] Re: solution for Thread::Abort()

Dietmar Maurer dietmar@ximian.com
08 Aug 2002 18:55:56 +0200


On Thu, 2002-08-08 at 18:07, Dick Porter wrote:

> I intend to implement SuspendThread() and ResumeThread() using signals.
> See http://home.earthlink.net/~anneart/family/Threads/code/susp.c for
> the example code from "Programming with POSIX threads" that demonstrates
> the technique.  Note that a suspended thread blocks inside the signal
> handler.

it seems that SIGUSR is used inside linuxthreads, but maybe only for
older kernels.

- Dietmar


#if !__ASSUME_REALTIME_SIGNALS
/* The _old variants are for 2.0 and early 2.1 kernels which don't have RT
   signals.
   On these kernels, we use SIGUSR1 and SIGUSR2 for restart and cancellation.
   Since the restart signal does not queue, we use an atomic counter to create
   queuing semantics. This is needed to resolve a rare race condition in
   pthread_cond_timedwait_relative. */