-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6fb8aff
commit 56b607d
Showing
19 changed files
with
215 additions
and
177 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
'use strict'; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export declare type FuncAny = (...args: any[]) => any; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,21 @@ | ||
import { __awaiter } from 'tslib'; | ||
import { Pool } from './Pool.mjs'; | ||
import '@flemist/priority-queue'; | ||
import '@flemist/async-utils'; | ||
import { toFuncWithFinally } from '@flemist/async-utils'; | ||
import '@flemist/time-controller'; | ||
|
||
function poolRunWait({ pool, count, func, priority, abortSignal, awaitPriority, }) { | ||
function runPoolWait({ pool, count, func, priority, abortSignal, awaitPriority, }) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield pool.holdWait(count, priority, abortSignal, awaitPriority); | ||
try { | ||
const holdPool = new Pool(count); | ||
const result = yield func(holdPool, abortSignal); | ||
return result; | ||
} | ||
finally { | ||
void this._pool.release(count); | ||
} | ||
return toFuncWithFinally(function funcWithPoolThrow() { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield pool.holdWait(count, priority, abortSignal, awaitPriority); | ||
const holdPool = new Pool(count); | ||
return func(holdPool, abortSignal); | ||
}); | ||
}, () => { | ||
void pool.release(count); | ||
})(); | ||
}); | ||
} | ||
|
||
export { poolRunWait }; | ||
export { runPoolWait }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
'use strict'; | ||
|
||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
|
||
var asyncUtils = require('@flemist/async-utils'); | ||
var pool_PoolHoldError = require('./PoolHoldError.cjs'); | ||
|
||
function toFuncWithPoolThrow(pool, count, func) { | ||
return asyncUtils.toFuncWithFinally(function funcWithPoolThrow() { | ||
const hold = pool.hold(count); | ||
if (!hold) { | ||
throw new pool_PoolHoldError.PoolHoldError(count); | ||
} | ||
return func.apply(this, arguments); | ||
}, () => { | ||
void pool.release(count); | ||
}); | ||
} | ||
function runPoolThrow(pool, count, func) { | ||
return toFuncWithPoolThrow(pool, count, func)(); | ||
} | ||
|
||
exports.runPoolThrow = runPoolThrow; | ||
exports.toFuncWithPoolThrow = toFuncWithPoolThrow; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
import { IPool } from "./.."; | ||
import { FuncAny } from "../contracts"; | ||
export declare function toFuncWithPoolThrow<TFunc extends FuncAny>(pool: IPool, count: number, func: TFunc): TFunc; | ||
export declare function runPoolThrow<T>(pool: IPool, count: number, func: () => T): T; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import { toFuncWithFinally } from '@flemist/async-utils'; | ||
import { PoolHoldError } from './PoolHoldError.mjs'; | ||
|
||
function toFuncWithPoolThrow(pool, count, func) { | ||
return toFuncWithFinally(function funcWithPoolThrow() { | ||
const hold = pool.hold(count); | ||
if (!hold) { | ||
throw new PoolHoldError(count); | ||
} | ||
return func.apply(this, arguments); | ||
}, () => { | ||
void pool.release(count); | ||
}); | ||
} | ||
function runPoolThrow(pool, count, func) { | ||
return toFuncWithPoolThrow(pool, count, func)(); | ||
} | ||
|
||
export { runPoolThrow, toFuncWithPoolThrow }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters