DefinitelyTyped/types/locks/locks-tests.ts

35 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

2018-09-27 23:48:34 +00:00
import locks = require("locks");
2018-09-27 03:07:33 +00:00
// Mutex
2018-09-27 03:44:35 +00:00
const mutex: locks.Mutex = new locks.Mutex();
2018-09-27 03:07:33 +00:00
mutex.lock(() => {});
mutex.timedLock(1000, () => {});
2018-09-27 03:44:35 +00:00
if (mutex.tryLock()) { console.log('Should not happen'); }
2018-09-27 03:07:33 +00:00
mutex.unlock();
const createMutex: locks.Mutex = locks.createMutex();
2018-09-27 03:07:33 +00:00
// Semaphore
2018-09-27 03:44:35 +00:00
const semaphore: locks.Semaphore = new locks.Semaphore(1);
2018-09-27 03:51:38 +00:00
semaphore.wait(() => {});
semaphore.wait(() => {});
2018-09-27 03:07:33 +00:00
semaphore.signal();
const createSemaphore: locks.Semaphore = locks.createSemaphore(1);
2018-09-27 03:07:33 +00:00
// Read Write Lock
2018-09-27 03:44:35 +00:00
const readWriteLock: locks.ReadWriteLock = new locks.ReadWriteLock();
2018-09-27 03:07:33 +00:00
readWriteLock.readLock(() => {});
2018-09-27 03:44:35 +00:00
if (readWriteLock.tryReadLock()) { console.log('Should not happen'); }
2018-09-27 03:07:33 +00:00
readWriteLock.unlock();
readWriteLock.writeLock(() => {});
2018-09-27 03:44:35 +00:00
if (readWriteLock.tryWriteLock()) { console.log('Should not happen'); }
2018-09-27 03:07:33 +00:00
readWriteLock.unlock();
const createReadWriteLock: locks.ReadWriteLock = locks.createReadWriteLock();
2018-09-27 03:07:33 +00:00
// Conditional Variable
2018-09-27 03:44:35 +00:00
const condVariable: locks.CondVariable = new locks.CondVariable('ho');
2018-09-27 03:51:38 +00:00
if (condVariable.get() !== 'ho') { console.log('Should not happen'); }
2018-09-27 03:07:33 +00:00
condVariable.wait('hi', () => {});
condVariable.set('hi');
2018-09-27 03:51:38 +00:00
if (condVariable.get() !== 'hi') { console.log('Should not happen'); }
const createCondVariable: locks.CondVariable = locks.createCondVariable('ho');