В
Size: a a a
В
В
АК
В
В
IK
IK
АК
В
S🛸
S🛸
АП
В
В
IK
В
MK
В
АК
function lock(key,cb){
if(!lock.locks)
lock.locks = Object.create(null);
if(!key)
throw new Error('lock("",...) is not allowed!');
if(lock.locks[key])
lock.locks[key].push(cb);
else {
lock.locks[key] = [];
process.nextTick(cb);
}
};
function unlock(key){
if(!lock.locks)
throw new Error('lock() not called!');
if(!key)
throw new Error('unlock("") is not allowed!');
let cur = lock.locks[key];
if(!cur)
throw new Error('unlock('+key+') was not locked!');
if(!cur.length)
delete lock.locks[key];
else
process.nextTick(cur.shift());
};
АП