diff options
author | Minteck <nekostarfan@gmail.com> | 2021-08-24 14:41:48 +0200 |
---|---|---|
committer | Minteck <nekostarfan@gmail.com> | 2021-08-24 14:41:48 +0200 |
commit | d25e11bee6ca5ca523884da132d18e1400e077b9 (patch) | |
tree | 8af39fde19f7ed640a60fb397c7edd647dff1c4c /node_modules/@calebboyd/semaphore/README.md | |
download | kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2 kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip |
Initial commit
Diffstat (limited to 'node_modules/@calebboyd/semaphore/README.md')
-rw-r--r-- | node_modules/@calebboyd/semaphore/README.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/node_modules/@calebboyd/semaphore/README.md b/node_modules/@calebboyd/semaphore/README.md new file mode 100644 index 0000000..cdee8bf --- /dev/null +++ b/node_modules/@calebboyd/semaphore/README.md @@ -0,0 +1,35 @@ +## Semaphore + +Naive resource management / concurrency primitive + +`npm i @calebboyd/semaphore` + +### Example +```javascript +import { Semaphore } from '@calebboyd/semaphore' +import { something } from './somewhere' + +function doSomeWork () { + const lock = new Semaphore(10) + while(something.isTrue) { + lock.acquire().then(x => () => { + something.work().then(lock.release) + }) + } +} +``` +The semaphore will only allow 10 locks to be aquired at a time. This limits the concurrency of the asyncronous function `something.work` to 10 + +#### API: + +```typescript +export class Semaphore { + constructor (count: number) {} + acquire(): Promise<void> + release(): void +} +``` + +## License + +MIT |