summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2014-08-22 14:13:05 +0000
committerAlan Conway <aconway@apache.org>2014-08-22 14:13:05 +0000
commit3f16bac6a8e6ae88fe6620a21d4af690fc58cd0a (patch)
treefda7e32af82b0942e80695747daa0af8f3391b3e /qpid/python
parentca0b79f9d7935e6da194ca77ea8477deb22e1e74 (diff)
downloadqpid-python-3f16bac6a8e6ae88fe6620a21d4af690fc58cd0a.tar.gz
NO-JIRA: Fix timeout on python messaging.Session.commit and rollback
Fix both to take timeout arg and raise Timeout exception if timeout expires. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1619813 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/qpid/messaging/endpoints.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py
index 50320b888f..8d0356d093 100644
--- a/qpid/python/qpid/messaging/endpoints.py
+++ b/qpid/python/qpid/messaging/endpoints.py
@@ -732,13 +732,14 @@ class Session(Endpoint):
raise NontransactionalSession()
self.committing = True
self._wakeup()
- self._ecwait(lambda: not self.committing, timeout=timeout)
+ if not self._ecwait(lambda: not self.committing, timeout=timeout):
+ raise Timeout("commit timed out")
if self.aborted:
raise TransactionAborted()
assert self.committed
@synchronized
- def rollback(self):
+ def rollback(self, timeout=None):
"""
Rollback outstanding transactional work. This consists of all
message sends and receives since the prior commit or rollback.
@@ -747,7 +748,8 @@ class Session(Endpoint):
raise NontransactionalSession()
self.aborting = True
self._wakeup()
- self._ecwait(lambda: not self.aborting)
+ if not self._ecwait(lambda: not self.aborting, timeout=timeout):
+ raise Timeout("rollback timed out")
assert self.aborted
@synchronized