]> Piment Noir Git Repositories - poolifier.git/commit
feat!: add abortable task support (#1625)
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 1 Jul 2025 13:24:02 +0000 (15:24 +0200)
committerGitHub <noreply@github.com>
Tue, 1 Jul 2025 13:24:02 +0000 (15:24 +0200)
commitf4289ecb624ab84f01cf82e9177befaab2b50e28
tree0de8151fde252a9a07bad72fa7acb2a95edcad70
parent7e15dc8f7d97ac536328f0974eb6c75c2f048420
feat!: add abortable task support (#1625)

* refactor: make worker a first class event emitter

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* docs: fix API documentation

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* docs: move changelog entry at the beginning

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* build(ci): silence linter errors

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* build: fix linter errors

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* build: silence linter error

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* feat: add delete op to priority queue

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* test: add priority queue delete() test

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* docs: add missing @param to workerNode.deleteTask()

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* docs: add code comment

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: silencer linter

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* fix: fix queues delete() implementation

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* fix: fix delete() in fixed queue

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* Update src/priority-queue.ts

* Update src/priority-queue.ts

* Update src/priority-queue.ts

* test: improve priority queue delete() coverage

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* build(ci): silence linting errors

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: code reformatting

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: code reformatting

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: code formatting

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* chore: fix merge issues

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* docs(api): formatting

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* chore: merge eslint-plugin-perfectionist reformatting

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* [autofix.ci] apply automated fixes

* chore: fix mismerge

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* chore: fix CHANGELOG.md mismerge

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* chore: silence linter

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* fix: ensure abort signal is defined before usage

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: code formatting

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* refactor: make mapExecute() properly handle one abort signal per task
data

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: propagate abort signal error when possible

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* test: improve queue delete() coverage

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* test: add abort error UT

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* test: tests for tasks abortion

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: fix taskId type definition

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* refactor: cleanup AbortError properties

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* docs(README.md): refinement

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* fix: ensure task abortion play nice with task stealing

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
* fix: cascaded tasks abortion is legit

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
---------

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
Co-authored-by: Jérôme Benoit <jerome.benoit@sap.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
32 files changed:
.vscode/settings.json
README.md
docs/api.md
examples/typescript/http-server-pool/fastify-hybrid/@types/fastify/index.d.ts
examples/typescript/http-server-pool/fastify-hybrid/src/fastify-poolifier.ts
examples/typescript/http-server-pool/fastify-worker_threads/@types/fastify/index.d.ts
examples/typescript/http-server-pool/fastify-worker_threads/src/fastify-poolifier.ts
src/pools/abstract-pool.ts
src/pools/pool.ts
src/pools/utils.ts
src/pools/worker-node.ts
src/pools/worker.ts
src/queues/abstract-fixed-queue.ts
src/queues/priority-queue.ts
src/queues/queue-types.ts
src/utility-types.ts
src/worker/abort-error.ts [new file with mode: 0644]
src/worker/abstract-worker.ts
src/worker/cluster-worker.ts
src/worker/thread-worker.ts
src/worker/worker-types.ts [new file with mode: 0644]
tests/pools/abstract-pool.test.mjs
tests/pools/cluster/fixed.test.mjs
tests/pools/thread/fixed.test.mjs
tests/pools/utils.test.mjs
tests/pools/worker-node.test.mjs
tests/queues/fixed-priority-queue.test.mjs
tests/queues/fixed-queue.test.mjs
tests/queues/priority-queue.test.mjs
tests/worker/abort-error.test.mjs [new file with mode: 0644]
tests/worker/cluster-worker.test.mjs
tests/worker/thread-worker.test.mjs