diff --git a/test/locks.js b/test/locks.js new file mode 100644 index 00000000..4fd1491d --- /dev/null +++ b/test/locks.js @@ -0,0 +1,28 @@ +'use strict'; + +const { isMainThread } = require('worker_threads'); +const { locks } = require('..'); +const { Thread } = locks; +const metatests = require('metatests'); + +const sleep = msec => + new Promise(resolve => { + setTimeout(resolve, msec); + }); + +if (isMainThread) { + metatests.test('locks: enter and leave', test => { + new Thread(); + new Thread(); + + setTimeout(() => { + locks.request('A', async lock => { + test.end(); + }); + }, 100); + }); +} else { + locks.request('A', async lock => { + await sleep(100); + }); +}