Howto pass exceptions between threads

  • Thread starter Alexander Eisenhuth
  • Start date
A

Alexander Eisenhuth

Hallo Alltogether,

I've searched in this mailing list, but it seems to me that there is no general
approach to pass exceptions from one thread to another.

I think most application do a unique way of handling "unhandled exceptions", at
least they (should) try to log them.

The following discussion seems to me most valuable (Sorry for the long URL, I
don't know a way of shorter)

http://groups.google.de/group/comp....ception++thread&rnum=6&hl=de#4b820c20ff3fcea8
http://groups.google.de/group/comp....ception++thread&rnum=1&hl=de#348a8d9e85883fe3

I've the feeling that if you're using the python class threading.Thread you've a
unique interface of handling it. (thread synchronizing + exception raising)

But' when you've a C++ extension, that uses it's own thread implementation and
your exceptions happens in python code (but from a thread that is controlled by
your extension) you have another problem.

Maybe I've overseen something in the python docu, so I ask for the solutions,
concepts, hints ... you solved the problem.

Regards
Alexander
 
J

John Nagle

Alexander said:
Hallo Alltogether,

I've searched in this mailing list, but it seems to me that there is no
general approach to pass exceptions from one thread to another.

Very few languages have that.

Actually, it could be made to work for Python, but it would have to
be carefully designed. Something that raises an exception in another
thread the next time the thread blocks would have relatively sane
semantics. You couldn't raise an exception on a compute-bound thread,
only at block points (locks, I/O, long system calls.)

John Nagle
 
A

Alexander Eisenhuth

John said:
Very few languages have that.

Actually, it could be made to work for Python, but it would have to
be carefully designed. Something that raises an exception in another
thread the next time the thread blocks would have relatively sane
semantics. You couldn't raise an exception on a compute-bound thread,
only at block points (locks, I/O, long system calls.)

John Nagle

Yes you're right, it must be well designed with a clear responsibility
delegation. I can imgagine the following points:

- Thread termination with termination handler (for Thread instance)
- Main Thread information / synchronisation
- Default/Customized main thread exception handler
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,021
Latest member
AkilahJaim

Latest Threads

Top