Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Thread::Cancel(3)     User Contributed Perl Documentation    Thread::Cancel(3)

NAME
       Thread::Cancel -	Cancel (i.e., kill) threads

VERSION
       This document describes Thread::Cancel version 1.13

SYNOPSIS
	   use Thread::Cancel 'SIGUSR1';      #	Set the	cancellation signal
	   use Thread::Cancel;		      #	 Defaults to 'KILL'

	   $thr->cancel();		      #	Cancel a thread
	   threads->cancel();		      #	Cancel all non-detached	threads
	   threads->cancel($thr, $tid, ...);  #	Cancel multiple	threads	using
					       #   objects or TIDs

DESCRIPTION
       This module adds	cancellation capabilities for threads.	Cancelled
       threads are terminated using "threads->exit()".	The thread is then
       detached, and hence automatically cleaned up.

       Threads that are	suspended using	Thread::Suspend	do not need to be
       resumed in order	to be cancelled.

       It is possible for a thread to cancel itself.

   Declaration
       This module must	be imported prior to any threads being created.

       Cancellation is accomplished via	a signal handler which is used by all
       threads on which	cancel operations are performed.  The signal for this
       operation can be	specified when this module is declared,	and defaults
       to "SIGKILL".  Consequently, the	application and	its threads must not
       specify some other handler for use with the cancel signal.

       use Thread::Cancel;
	   Declares this module, and defaults to using "SIGKILL" for cancel
	   operations.

       use Thread::Cancel 'SIGUSR1';
       use Thread::Cancel 'Signal' => 11;
	   Declares this module, and uses the specified	signal for cancel
	   operations.	Signals	may be specified by the	same names or
	   (positive) numbers as supported by kill().

   Methods
       $thr->cancel()
	   Cancels the threads.

       threads->cancel()
	   Cancels all non-detached threads.  This offers a clean way to exit
	   a threaded application:

	       # Terminate all threads and exit
	       threads->cancel();
	       exit(0);

       threads->cancel($thr, $tid, ...)
	   Cancels the threads specified by their objects or TIDs (for non-
	   detached threads).

CAVEATS
       Subject to the limitations of "THREAD SIGNALLING" in threads.

       Cancelled threads are automatically detached, so	do not try to
       "->join()" or "->detach()" a cancelled thread.

       Detached	threads	can only be cancelled using their threads object:

	   $thr->detach();
	   $thr->cancel();
	   # or
	   threads->cancel($thr);

       Threads that have finished execution are, for the most part, ignored by
       this module.

REQUIREMENTS
       Perl 5.8.0 or later

       threads 1.39 or later

       Test::More 0.50 or later	(for installation)

SEE ALSO
       Thread::Cancel Discussion Forum on CPAN:
       <http://www.cpanforum.com/dist/Thread-Cancel>

       threads,	threads::shared

AUTHOR
       Jerry D.	Hedden,	<jdheddenA ATA cpanA DOTA org>

COPYRIGHT AND LICENSE
       Copyright 2006 -	2009 Jerry D. Hedden. All rights reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.0			  2010-12-24		     Thread::Cancel(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | CAVEATS | REQUIREMENTS | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Thread::Cancel&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help