0
此代碼是否具有競爭條件或競爭條件只發生在協同程序中? 我如何解決這種競爭條件,最好不使用庫?這裏是否存在競爭條件以及如何處理?
class Handler(WebSocketHandler):
listeners = {}
def open(self, sub):
self.subscriptions = [sub]
Handler.listeners.setdefault(sub, set()).add(self)
def on_close(self):
for sub in self.subscriptions:
Handler.listeners[sub].remove(self)
if not Handler.listeners[sub]:
# here in between someone might subscribe
# so we delete non empty set! which is wrong
del Handler.listeners[sub]