diff --git a/semaphore/semaphore-tests.ts b/semaphore/semaphore-tests.ts new file mode 100644 index 000000000..d6df36030 --- /dev/null +++ b/semaphore/semaphore-tests.ts @@ -0,0 +1,14 @@ +/// + +import semaphore = require('semaphore'); + +var sem: semaphore.Semaphore = semaphore(10); + +function task() { + console.log('My task'); + sem.leave(); +} + +sem.take(task); +sem.take(2, task); +sem.leave(2); diff --git a/semaphore/semaphore.d.ts b/semaphore/semaphore.d.ts new file mode 100644 index 000000000..0a2855b82 --- /dev/null +++ b/semaphore/semaphore.d.ts @@ -0,0 +1,26 @@ +// Type definitions for semaphore v1.0.3 +// Project: https://github.com/abrkn/semaphore.js +// Definitions by: Matt Frantz +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module 'semaphore' { + + function semaphore(capacity?: number): semaphore.Semaphore; + + module semaphore { + + interface Task { + (): void; + } + + interface Semaphore { + capacity: number; + + take(task: Task): void; + take(n: number, task: Task): void; + + leave(n?: number): void; + } + } + export = semaphore; +}