barrier()
A decorator running the function under a lock made by lock_factory(cache, key, expire=...)
Usage
barrier(
cache,
lock_factory,
name=None,
expire=None,
tag=None,
)(Lock, RLock, BoundedSemaphore, or one of your own): one caller at a time, everywhere.