Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!news-1.dfn.de!news.dfn.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Neil Cerutti Newsgroups: comp.lang.python Subject: Re: Finding the source of an exception in a python multiprocessing program Date: 25 Apr 2013 12:37:03 GMT Organization: Norwich University Lines: 31 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: individual.net sih6EMArbkvBapWolfuh5gm2chnsWLfcLvVdAPhTk4FAN3iOyp Cancel-Lock: sha1:yJZCHGjmAlJVmP3D2CuyGZC5+PA= User-Agent: slrn/0.9.9p1/mm/ao (Win32) Xref: csiph.com comp.lang.python:44333 On 2013-04-24, William Ray Wing wrote: > On Apr 24, 2013, at 4:31 PM, Neil Cerutti wrote: > >> On 2013-04-24, William Ray Wing wrote: >>> When I look at the pool module, the error is occurring in >>> get(self, timeout=None) on the line after the final else: >>> >>> def get(self, timeout=None): >>> self.wait(timeout) >>> if not self._ready: >>> raise TimeoutError >>> if self._success: >>> return self._value >>> else: >>> raise self._value >> >> The code that's failing is in self.wait. Somewhere in there you >> must be masking an exception and storing it in self._value >> instead of letting it propogate and crash your program. This is >> hiding the actual context. > > I'm sorry, I'm not following you. The "get" routine (and thus > self.wait) is part of the "pool" module in the Python > multiprocessing library. None of my code has a class or > function named "get". Oops! I failed to notice it was part of the pool module and not your own code. -- Neil Cerutti