def routineTrylock(key): l = Lock(key, rc.scheduler) locked = l.trylock() result.append(locked) for m in rc.waitWithTimeout(0.5): yield m l.unlock()
async def routineLock(key): l = Lock(key, rc.scheduler) locked = l.beginlock(rc) if not locked: await rc.wait_with_timeout(0.2) locked = l.trylock() if not locked: raise ValueError('Not locked') t = obj[0] await rc.do_events() obj[0] = t + 1 l.unlock() await rc.do_events() await l.lock(rc) t = obj[0] await rc.do_events() obj[0] = t + 1 l.unlock()
def routineLock(key): l = Lock(key, rc.scheduler) locked = l.beginlock(rc) if not locked: for m in rc.waitWithTimeout(1.0): yield m locked = l.trylock() if not locked: raise ValueError('Not locked') t = obj[0] for m in rc.waitWithTimeout(0.5): yield m obj[0] = t + 1 l.unlock() for m in rc.doEvents(): yield m for m in l.lock(rc): yield m t = obj[0] for m in rc.waitWithTimeout(1.0): yield m obj[0] = t + 1 l.unlock()
async def routineTrylock(key): l = Lock(key, rc.scheduler) locked = l.trylock() result.append(locked) await rc.do_events() l.unlock()