Skip to content

Commit

Permalink
Add a workaround for a race condition while closing the socket (#2212) (
Browse files Browse the repository at this point in the history
#2233)

Co-authored-by: Daniele Calisi <calisi@magazino.eu>
  • Loading branch information
madmage and Daniele Calisi committed May 31, 2022
1 parent f1156c1 commit dd78ac8
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions clients/rospy/src/rospy/impl/tcpros_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -856,6 +856,13 @@ def close(self):
pass
finally:
self.socket.close()
except AttributeError:
# this is a workaround to avoid a race condition: thread A
# checks the self.socket to be not None (above in
# this function), thread B sets it to None (below in this
# function) and then thread A executes self.socket.close()
# (above in this function)
pass
finally:
self.socket = self.read_buff = self.write_buff = self.protocol = None
super(TCPROSTransport, self).close()

0 comments on commit dd78ac8

Please sign in to comment.