Example #1
0
 def close(self):
     # TODO: provide stronger interrupt protection on cleanup.  See PEP 419
     if self.closing:
         return
     self.closing = True
     self.container.errors = []
     try:
         if self.conn:
             self.conn.close()
             self.wait(lambda: not (self.conn.state & Endpoint.REMOTE_ACTIVE),
                       msg="Closing connection")
     finally:
         self.conn.free()
         # Nothing left to block on.  Allow reactor to clean up.
         self.run()
         self.conn = None
         self.container.global_handler = None  # break circular ref: container to cadapter.on_error
         pn_collector_release(pn_reactor_collector(self.container._impl))  # straggling event may keep reactor alive
         self.container = None
Example #2
0
 def close(self):
     # TODO: provide stronger interrupt protection on cleanup.  See PEP 419
     if self.closing:
         return
     self.closing = True
     self.container.errors = []
     try:
         if self.conn:
             self.conn.close()
             self.wait(
                 lambda: not (self.conn.state & Endpoint.REMOTE_ACTIVE),
                 msg="Closing connection")
     finally:
         self.conn.free()
         # Nothing left to block on.  Allow reactor to clean up.
         self.run()
         self.conn = None
         self.container.global_handler = None  # break circular ref: container to cadapter.on_error
         pn_collector_release(pn_reactor_collector(self.container._impl)
                              )  # straggling event may keep reactor alive
         self.container = None
Example #3
0
 def release(self) -> None:
     pn_collector_release(self._impl)
Example #4
0
 def release(self):
     pn_collector_release(self._impl)