From 40df26dd75d7096006bd4cf7a11ecfd8eca327be Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Mon, 18 Aug 2008 16:52:11 +0000 Subject: QPID-1250: Ensure broker receives session.detached before channel can be reused. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@686818 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/python/qpid/delegates.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'qpid/python') diff --git a/qpid/python/qpid/delegates.py b/qpid/python/qpid/delegates.py index 69b93e73dc..bf26553dda 100644 --- a/qpid/python/qpid/delegates.py +++ b/qpid/python/qpid/delegates.py @@ -74,8 +74,13 @@ class Delegate: notify(ch.session.condition) def session_detach(self, ch, d): - ssn = self.connection.detach(d.name, ch) + #send back the confirmation of detachment before removing the + #channel from the attached set; this avoids needing to hold the + #connection lock during the sending of this control and ensures + #that if the channel is immediately reused for a new session the + #attach request will follow the detached notification. ch.session_detached(d.name) + ssn = self.connection.detach(d.name, ch) def session_detached(self, ch, d): self.connection.detach(d.name, ch) -- cgit v1.2.1