From 261548ff184926567a623e90df7954aeef842d59 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Wed, 30 Jun 2021 12:28:05 +0200 Subject: emply an sh-based build system; make some changes to blocking --- common/lock.js | 68 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'common/lock.js') diff --git a/common/lock.js b/common/lock.js index 3358393..1130762 100644 --- a/common/lock.js +++ b/common/lock.js @@ -19,40 +19,40 @@ * in a promise. */ -"use strict"; - -(() => { - function make_lock() { - return {free: true, queue: []}; +function make_lock() { + return {free: true, queue: []}; +} + +function _lock(lock, cb) { + if (lock.free) { + lock.free = false; + setTimeout(cb); + } else { + lock.queue.push(cb); } - - function _lock(lock, cb) { - if (lock.free) { - lock.free = false; - setTimeout(cb); - } else { - lock.queue.push(cb); - } +} + +function lock(lock) { + return new Promise((resolve, reject) => _lock(lock, resolve)); +} + +function unlock(lock) { + if (lock.free) + throw new Exception("Attempting to release a free lock"); + + if (lock.queue.length === 0) { + lock.free = true; + } else { + let cb = lock.queue[0]; + lock.queue.splice(0, 1); + setTimeout(cb); } +} - function lock(lock) { - return new Promise((resolve, reject) => _lock(lock, resolve)); - } - - function unlock(lock) { - if (lock.free) - throw new Exception("Attempting to release a free lock"); - - if (lock.queue.length === 0) { - lock.free = true; - } else { - let cb = lock.queue[0]; - lock.queue.splice(0, 1); - setTimeout(cb); - } - } - - window.make_lock = make_lock; - window.lock = lock; - window.unlock = unlock; -})(); +/* + * EXPORTS_START + * EXPORT make_lock + * EXPORT lock + * EXPORT unlock + * EXPORTS_END + */ -- cgit v1.2.3