Behaviour of ObservableMixin when its `off` method is called while its `fire` method is currently iterating over listeners
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Individua le implementazioni di fire e off di ObservableMixin e riproduci il problema con l'esempio del report con due listener. Aggiungi un test di regressione che copra il caso in cui un listener rimuove se stesso durante il dispatch; il lavoro è completato quando il listener rimanente viene comunque chiamato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Suppose we have two listeners on "close" event.
import txaio
from autobahn.util import ObservableMixin
txaio.use_twisted()
class Foo(ObservableMixin):
def __init__(self):
self.set_valid_events(["someEvent"])
def doSomething(self):
self.fire("someEvent", self)
def listener1(foo):
f.off("someEvent", listener1)
print("listener1 called")
def listener2(foo):
print("listener2 called")
f = Foo()
f.on("someEvent", listener1)
f.on("someEvent", listener2)
f.doSomething()
This will output:
listener1 called
This means, when ObservableMixin off method is called inside listener1,
except for last listeners, then the next listeners (listener2) will never get called.
I think this is because ObservableMixin off method is called while
ObservableMixin fire method is iterating over current listeners of event..
- Lingua principale
- Python
- Stelle
- 2.5k
- Fork
- 769
- Merge medio
- 1g 11h
- PR unite (30g)
- 16
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di crossbario/autobahn-python
-
CI-CD enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
crossbario/autobahn-python#1945 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug CI-CD
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
crossbario/autobahn-python#1932 ·
I maintainer di solito rispondono entro 1 giorno
-
CI-CD enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
crossbario/autobahn-python#1829 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
crossbario/autobahn-python#1985 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
crossbario/autobahn-python#1963 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di crossbario/autobahn-python
Issue simili
-
Agentic
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Imbad0202/academic-research-skills#979 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
reflex-dev/reflex#7561 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
prometheus-community/ansible#906 · 2 commenti ·