2011-08-26 42 views
1

我發現,大部分的時候我用gevent.event.Event的時候,我的代碼看起來是這樣的:使用`gevent.event.Event`爲多監聽器通知提供更好的模式?

old_event = self.some_event 
self.some_event = Event() 
old_event.set() 

隨着看起來像聽衆:

while 1: 
    self.some_event.wait() 
    … do stuff … 

這是「正道去做吧」?還是有更好的方式來通知多個聽衆重複發生的事件?

回答

1

好吧,你也可以clear()這個事件。

event.set() 
event.clear() 

這將通知正在等待該事件偵聽器,但都開始等待聽衆()以後將被阻塞,直到set()下一個電話。

+0

* facepalm *是的,這顯然是正確的做法。謝謝。 –

+0

調用event.clear()使得無法檢測超時event.wait()。 爲什麼event.wait只是返回而不是在超時時引發異常? –