5.2.5. vlcp.event.lock¶
Note
This document is generated from the source file.
Created on 2015/12/14
| author: | hubo |
|---|
Lock is created by limiting queue length of LockEvent, so there is only one event in the queue. Other send request is blocked by the queue.
-
class
vlcp.event.lock.Lock(key, scheduler, context='default')¶ An lock object. Normal usage:
my_lock = Lock(lock_obj, container.scheduler) await my_lock.lock(container) with my_lock: ...
Or use async with:
async with my_lock: ...
-
__init__(key, scheduler, context='default')¶ Create a lock object. You do not need to share this object with other routines; all locks with the same key and context are mutual exclusive.
Parameters: - key – Any hashable value.
- scheduler – The scheduler
- context – An extra object to separate keys into different context
-
beginlock(container)¶ Start to acquire lock in another routine. Call trylock or lock later to acquire the lock. Call unlock to cancel the lock routine
-
lock(container=None)¶ Wait for lock acquire
-
trylock()¶ Try to acquire lock and return True; if cannot acquire the lock at this moment, return False.
-
unlock()¶ Unlock the key
-
-
class
vlcp.event.lock.LockEvent(*args, **kwargs)¶ -
canignorenow()¶ Extra criteria for an event with canignore = False. When this event returns True, the event is safely ignored.
-
-
class
vlcp.event.lock.LockedEvent(*args, **kwargs)¶
-
class
vlcp.event.lock.Semaphore(key, size, scheduler, context='default', priority=1000)¶ Change the default behavior of Lock for specified context and key from lock to semaphore. The default behavior of Lock allows only one routine for a specified key; when a semaphore is created, limited number of routines can retrieve the Lock at the same time.
-
__init__(key, size, scheduler, context='default', priority=1000)¶ Prepare to change locks on key and context to a semaphore.
Parameters: - key – Hashable object used by locks.
- size – Semaphore size, which means the maximum allowed routines to retrieve the lock at the same time
- scheduler – The scheduler
- context – context object used by locks.
- priority – priority for the created queue.
-
create()¶ Create the subqueue to change the default behavior of Lock to semaphore.
-
destroy(container=None)¶ Destroy the created subqueue to change the behavior back to Lock
-