diff options
author | Özgür Kesim <oec-taler@kesim.org> | 2023-08-25 13:24:08 +0200 |
---|---|---|
committer | Özgür Kesim <oec-taler@kesim.org> | 2023-08-25 13:24:08 +0200 |
commit | 5ab3070b3a63c2e8fed0e413dea06cf03fb48f1e (patch) | |
tree | 121425d99c9465f2daf8ac91c6dc2254ebac5906 /packages/idb-bridge/src/backend-common.ts | |
parent | 70fca92e781696a057089bc8bc48adebdf6e017e (diff) | |
parent | 2051aded501cddac1a4c869fb1f9731ac4523a1e (diff) |
Merge branch 'master' into age-withdraw
Diffstat (limited to 'packages/idb-bridge/src/backend-common.ts')
-rw-r--r-- | packages/idb-bridge/src/backend-common.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/backend-common.ts b/packages/idb-bridge/src/backend-common.ts new file mode 100644 index 000000000..d52071939 --- /dev/null +++ b/packages/idb-bridge/src/backend-common.ts @@ -0,0 +1,29 @@ +import { openPromise } from "./util/openPromise.js"; + +export class AsyncCondition { + _waitPromise: Promise<void>; + _resolveWaitPromise: () => void; + constructor() { + const op = openPromise<void>(); + this._waitPromise = op.promise; + this._resolveWaitPromise = op.resolve; + } + + wait(): Promise<void> { + return this._waitPromise; + } + + trigger(): void { + this._resolveWaitPromise(); + const op = openPromise<void>(); + this._waitPromise = op.promise; + this._resolveWaitPromise = op.resolve; + } +} + +export enum TransactionLevel { + None = 0, + Read = 1, + Write = 2, + VersionChange = 3, +} |