Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^3: how to timeout an operation under mod_perl (fork?!)

by perrin (Chancellor)
on Sep 07, 2008 at 16:31 UTC ( [id://709652]=note: print w/replies, xml ) Need Help??


in reply to Re^2: how to timeout an operation under mod_perl (fork?!)
in thread how to timeout an operation under mod_perl

Sam and I came up with this while working on a project together that had the potential to generate very long-running queries. We tried a few other things before doing it this way, and they all had downsides. The potential for trouble when you use unsafe signals with XS code is pretty high. If forking really bothers you, you could do a more complicated approach with a prefork server.

You do mention that you already use the unsafe signals approach. If that's working for you, what more were you looking for?

  • Comment on Re^3: how to timeout an operation under mod_perl (fork?!)

Replies are listed 'Best First'.
Re^4: how to timeout an operation under mod_perl (looking)
by tye (Sage) on Sep 07, 2008 at 16:42 UTC

    The original poster was looking for something. I was not looking for something, I was pointing out what is probably the major drawback to the solution you offered and pointing out alternatives and some of the major drawbacks of them.

    But, no, none of them work very well, in my experience. It is rather sad that we can't have signals interrupt DBI while just preventing the signal action from bubbling up to the next higher level of abstraction until that level of abstraction is at a safe point for it to be interrupted. Perl's implementation of "safe signals" just never interrupt a long-running DBI call. That should be considered a bug to be fixed (without having to resort to "unsafe signals").

    - tye        

      Sorry tye, didn't notice that the name had changed before I replied. Having safe signals that could interrupt DBI would be ideal. This is common enough that maybe DBI actually needs special handling for timeouts built in.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://709652]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-04-26 01:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found