develooper Front page | perl.ithreads | Postings from September 2010

RE: Killing a thread

Thread Previous | Thread Next
From:
dannwong
Date:
September 29, 2010 08:02
Subject:
RE: Killing a thread
Message ID:
D59C59453D0EDC43832490B6DADFAECF01F5EA2C@XMB-RCD-214.cisco.com
Hi Jerry,
	Is there an example you or someone can provide, if the thread is
hanging, I would just like the thread to "return failure or timeout" and
ignore the system call. Let the system call hang and I'll clean it up
afterwards at the very end of the script.

Sincerely yours,
Danny H. Wong

-----Original Message-----
From: jdhedden@gmail.com [mailto:jdhedden@gmail.com] On Behalf Of Jerry
D. Hedden
Sent: Wednesday, September 29, 2010 5:47 AM
To: Danny Wong (dannwong)
Cc: perl-ithreads@perl.org
Subject: Re: Killing a thread

Danny Wong wrote:
> Here is my situation. I started, say 10 threads, executing
> some command, 1 or 2 of them is hanging for over 2 hours.
> I want to put in some logic that if the thread run time
> passes an hour threshold kill that thread or return and
> fail the thread. Any ideas on how I can accomplish this
> task? Thanks.

This problem is addressed in the 'examples/pool.pl' file in
the 'threads' distribution on CPAN.  From the POD (note the
third bullet):

    NAME
        pool.pl - Simple 'threads' example

    DESCRIPTION
        A simplistic example illustrating the following:
        *   Management of a pool of threads
        *   Communication between threads using queues
        *   Timing out and cancelling threads
        *   Interrupting a threaded program
        *   Cleaning up threads before terminating

However, if the 'hung' threads are stuck on some system
call, then the above will not work because of Perl's "safe
signals".  You'll need to read the section called "Deferred
Signals (Safe Signals)" in "perldoc perlipc".

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About