[python] Lock
Petr Messner
petr.messner na gmail.com
Úterý Únor 10 14:39:07 CET 2015
Jak jsou jednotlivé zprávy od sebe odděleny? Vidím tam v klientovi
def communicate(self, data):
self._socket.send('%s %s' % (self.name, data))
self._socket.recv(self.buffer_size)
A server to čte takto:
while True:
data = self._socket.recv(self.buffer_size)
if data in ('', '\n', '\r\n'):
return
try:
who, op, name = data.split()
except ValueError:
raise ValueError('Invalid data')
Co když se zprávy pošlou náhodou tak, že
self._socket.recv(self.buffer_size) přijme
dvě zprávy najednou? To mu pak přijde něco jako "client1 mklock
lock1client2 mklock lock2" a nebude to fungovat - server spadne.
PM
Dne 10. února 2015 14:15 Pavel S <pavel na schon.cz> napsal(a):
> Jeste existuje tzv. DLM (Distributed Lock Manager). Zjednodusene receno,
> je to mutex, ktery je pristupny po siti.
>
> Jeden takovy jednoduchy distributed lock manager jsem napsal v pythonu a
> umistil na activestate zde:
> http://code.activestate.com/recipes/578194-distributed-lock-manager-for-python/
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20150210/a0a7270f/attachment.html>
Další informace o konferenci Python