Some mistake fixes in my previous message > @inlineCallbacks > def acquire_tts_for(self, call): > tts_connection = yield self.tts.acquire_connection(timeout=10) # > may raise TimeoutError inside > yield call.make_audio_link_with(tts_connection, 'in', timeout=10) > # may raise TimeoutError inside > return tts_connection > > @inlineCallbacks > def acquire_asr_for(self, call): > asr_connection = yield self.asr.acquire_connection(timeout=10) # > may raise TimeoutError inside > yield call.make_audio_link_with(asr_connection, 'out', timeout=10) > # may raise TimeoutError inside > return asr_connection
Above code must be replaced with: @inlineCallbacks def acquire_tts_for(self, call): # may raise TimeoutError inside tts_connection = yield self.tts.acquire_connection(timeout=10) try: # may raise TimeoutError inside yield call.make_audio_link_with(tts_connection, 'in', timeout=10) except Exception: # we MAY receive this Exception when cascading cancellation occurs tts_connection.release() raise else: return tts_connection @inlineCallbacks def acquire_asr_for(self, call): # may raise TimeoutError inside asr_connection = yield self.asr.acquire_connection(timeout=10) try: # may raise TimeoutError inside yield call.make_audio_link_with(asr_connection, 'out', timeout=10) except Exception: # we MAY receive this Exception when cascading cancellation occurs asr_connection.release() raise else: return asr_connection _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python