Лучший шаблон для уведомлений с несколькими слушателями с помощью gevent.event.Event?

1

Я обнаружил, что большую часть времени, когда я использую gevent.event.Event, мой код выглядит примерно так:

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

С слушателями, которые выглядят примерно так:

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

Это "правильный способ сделать это"? Или есть лучший способ уведомить нескольких слушателей о повторяющемся событии?

Теги:
gevent

1 ответ

1
Лучший ответ

Ну, вы также можете clear() событие.

event.set()
event.clear()

Это будет уведомлять слушателей, которые в настоящее время ждут события, но слушатели, которые начинают ждать() позже, будут заблокированы до следующего вызова set().

  • 0
    facepalm Да, это, безусловно, правильно. Благодарю.
  • 0
    Вызов event.clear () делает невозможным обнаружение тайм-аута event.wait (). Почему event.wait просто возвращается, а не вызывает исключение, когда оно истекло?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню