Quel est l'équivalent RLock dans gevent? S'il n'y a pas d'équivalent, comment identifier le greenlet actuel pour que je puisse en mettre un en place? A la lecture de la source, gevent.lock.BoundedSemaphore(1) est l'équivalent d'un verrou simple (non-réentrant). Les tests indiquent également cela.Verrou réentrant compatible gevent?
0
A
Répondre
1
Le module gevent.lock
a une implémentation de RLock
qui utilise la méthode getcurrent
de gevent.hub
pour identifier le greenlet actuel. Voici un exemple simple.
from gevent.lock import RLock
lock = RLock()
with lock:
print("acquired once")
with lock:
print("acquired twice")
Bien que je ne trouve pas de documentation here, vous pouvez toujours lire le source.
Il ne m'est jamais venu à l'esprit de parcourir la source. La documentation ne mentionne pas du tout «RLock», c'est pourquoi j'ai abandonné là-bas. ty. – gcscaglia