gevent, sockets and syncronisation
- by schlamar
I have multiple greenlets sending on a common socket. Is it guaranteed that each package sent via socket.sendall is well separated or do I have to acquire a lock before each call to sendall.
So I want to prevent the following scenario:
g1 sends ABCD
g2 sends 1234
received data is mixed up, for example AB1234CD
expected is either ABCD1234 or 1234ABCD
Update
After a look at the sourcecode I think this scenario cannot happen. But I have to use a lock because g1 or g2 can crash on the sendall. Can someone confirm this?