This website requires JavaScript.
5375ab41b2
Merge branch 'perf/phase0-harness'
master
dtourolle
2026-08-08 22:27:55 +02:00
b500570c47
perf(pool): submit to the calling worker's own queue, and skip a notify nobody is waiting for
dtourolle and Claude Opus 5
2026-08-08 22:26:14 +02:00
73828bcffe
perf(bench): make a multi-hour acceptance run observable and restartable
dtourolle and Claude Opus 5
2026-08-08 22:25:00 +02:00
a3f61fcb3c
perf: make the benchmark able to answer the question, then ask it
perf/phase0-harness
dtourolle and Claude Opus 5
2026-08-08 12:13:11 +02:00
771b9f8593
fix: ThreadPool::start must take the lifecycle lock too
dtourolle
2026-08-06 22:53:02 +02:00
3b67b7e1e9
Merge origin/master into master
dtourolle
2026-08-06 21:57:32 +02:00
433c3b3859
Merge branch 'fix/channel-push-callback-lost-wake'
dtourolle
2026-08-06 21:57:15 +02:00
6802328e97
fix: a push must wake its consumer, even when the ring looked non-empty
dtourolle and Claude Opus 5
2026-08-06 20:50:34 +02:00
c9aa246322
fix: a re-offered sentinel is not data loss
dtourolle
2026-08-06 20:44:38 +02:00
27f884496d
Merge pull request 'fix/kpn-wedging-audit' (#3 ) from fix/kpn-wedging-audit into master
dtourolle
2026-08-05 16:24:01 +00:00
00245f5760
fix: Network::set_error_handler must actually deliver the handler
fix/kpn-wedging-audit
dtourolle
2026-08-05 18:05:24 +02:00
7a3e96cc99
fix: the watchdog must be interruptible, or stop() waits for its next tick
dtourolle
2026-08-05 17:52:36 +02:00
80c2b1fb2f
fix: try_push must distinguish delivered from discarded
dtourolle
2026-08-05 16:14:50 +02:00
012b64dd3e
fix: the sentinel must not be delivered ahead of a queued value
dtourolle
2026-08-05 16:11:20 +02:00
7b7f631e6d
fix: a shared resource must be able to release its waiters
dtourolle
2026-08-05 15:51:26 +02:00
97670d8ba3
fix: stop() must not return while a firing is still running
dtourolle
2026-08-05 15:46:27 +02:00
b9698fae60
fix: idle workers must sleep while another worker is busy
dtourolle
2026-08-05 15:34:33 +02:00
87c5f98d04
fix: start and stop in the topological order that was computed
dtourolle
2026-08-05 15:14:35 +02:00
abbb2d4770
fix: submitting to a stopped pool must be refused, not fatal
dtourolle
2026-08-05 15:14:06 +02:00
0f277c0f98
fix: the drain loops must terminate, and must drain the right channels
dtourolle
2026-08-05 14:25:00 +02:00
139bfbb794
fix: the sentinel slot holds one token and refuses a second
dtourolle
2026-08-05 14:06:26 +02:00
8d319eeb88
fix: an empty channel is not a closed one
dtourolle
2026-08-05 13:55:57 +02:00
15e993f6ca
fix: two firings of the same node must not overlap
dtourolle
2026-08-05 13:48:13 +02:00
a5c016833d
fix: install channel callbacks before any node runs
dtourolle
2026-08-05 13:39:26 +02:00
f53af260a2
fix: make the submit gate a single atomic
dtourolle
2026-08-05 13:22:03 +02:00
5628447ea8
fix: never self-move the parked output tuple
dtourolle
2026-08-05 13:10:41 +02:00
6a4f45f111
fix: a filter or router must not drop on a full output
dtourolle
2026-08-05 12:59:39 +02:00
c73edffe5c
chore: delete the unreachable duplicate of the parked-retry block
dtourolle
2026-08-05 12:51:21 +02:00
091211cb19
fix: NodeSnapshot fields must line up with what nodes supply
dtourolle
2026-08-05 12:46:56 +02:00
a8cfe7300a
fix: a lossless fanout, a node that starts awake, and the instrumentation that found them
dtourolle
2026-08-05 12:40:03 +02:00
454f72c167
chore: ignore generated ORT engine cache
dtourolle
2026-08-04 14:04:50 +02:00
9c5ce5f34a
fix: never drop a wake — a node must not sleep with one outstanding
dtourolle
2026-08-02 18:33:17 +02:00
28e06675f5
fix: park nodes on a full output instead of blocking the worker
dtourolle
2026-07-31 22:39:51 +02:00
6595e6e925
fix: node outputs block instead of dropping on a full channel
backpressure-fix
dtourolle and Claude Opus 5
2026-07-31 10:35:00 +02:00
ac36159f37
fix: apply lossless push in PoolObjectNode too
feature/lossless-backpressure
dtourolle and Claude Opus 5
2026-07-25 23:12:51 +02:00
4e81752838
feat: opt-in lossless (blocking) output for nodes and fanouts
dtourolle and Claude Opus 5
2026-07-25 23:03:56 +02:00
75b34f31bb
Merge pull request 'feat: persistent-pipeline reuse — push_blocking, node introspection, stateful wrapper' (#2 ) from feature/persistent-pipeline-reuse into master
dtourolle
2026-07-19 16:11:27 +00:00
4b6e498ba7
feat: persistent-pipeline reuse — push_blocking, node introspection, stateful wrapper
feature/persistent-pipeline-reuse
dtourolle
2026-07-19 16:55:36 +02:00
5ecf3cde4f
Merge pull request 'spec-and-tsan' (#1 ) from spec-and-tsan into master
dtourolle
2026-07-17 18:11:51 +00:00
ec19137ed9
ci: fix TSan aborting at init on the nested-LXC runner
spec-and-tsan
dtourolle and Claude Opus 4.8
2026-07-17 20:01:57 +02:00
a0c4bf580e
fix: deliver EOF sentinel only when the ring is freshly empty
dtourolle and Claude Opus 4.8
2026-07-14 19:35:31 +02:00
3ac2242df1
docs: rewrite SPEC.md to match the implemented library
dtourolle and Claude Opus 4.8
2026-07-04 20:40:56 +02:00
399ee4cf9b
test: add ThreadSanitizer verification for lock-free Channel<T>
dtourolle and Claude Opus 4.8
2026-07-04 20:40:35 +02:00
0ee99ab2cc
docs: deploy from 66feb91821
gitea-pages
Gitea Actions
2026-07-04 13:19:43 +00:00
66feb91821
ci: pass docker push input as a string, not a boolean
dtourolle
2026-07-04 15:07:27 +02:00
903dd4eea5
docs: update README examples table and add documentation link
dtourolle
2026-07-04 15:07:12 +02:00
298c9e770b
examples: run Python examples 07 and 08 as CTest smoke tests
dtourolle
2026-07-04 14:44:30 +02:00
2b0873b61b
examples: make 08_python_subport run a real Python node
dtourolle
2026-07-04 14:44:24 +02:00
c4538f03ca
python: fix nanobind Network reference leak via GC type slots
dtourolle
2026-07-04 14:43:47 +02:00
949c8134ef
Ignore build_test/ (out-of-tree test build dir)
dtourolle and Claude Opus 4.8
2026-07-04 11:02:54 +02:00
19f5a2b0ae
Deliver EOF sentinels out-of-band to prevent teardown deadlock
dtourolle and Claude Opus 4.8
2026-07-03 23:38:03 +02:00
904f80af6e
docs: deploy from a4de64ea04
Gitea Actions
2026-06-28 10:06:52 +00:00
a4de64ea04
Add liscence and prepare for OSS release
dtourolle
2026-06-28 12:05:56 +02:00
b278824b6b
docs: deploy from 7c6a8be2b7
Gitea Actions
2026-06-20 08:00:33 +00:00
7c6a8be2b7
ci: provoke pipeline (touch Dockerfile + code)
dtourolle and Claude Opus 4.8
2026-06-20 09:46:35 +02:00
4c0f1f6923
fix CI
dtourolle
2026-06-20 09:38:26 +02:00
6b52526e44
Auto-build docker when docker file changes.
dtourolle
2026-06-20 09:16:27 +02:00
7cb92a4091
Build docs with a pre-configured docker
dtourolle
2026-06-20 08:55:48 +02:00
20668d6955
Fix docker image
dtourolle
2026-06-19 22:29:46 +02:00
6f384dc4b5
Added callbacks for node errors and fifo overflow
dtourolle
2026-06-19 22:26:39 +02:00
79916f1da1
Set node names in make_network for user and fanout nodes
dtourolle and Claude Opus 4.8
2026-06-12 15:20:50 +02:00
f6bcaa15b0
Performance improvements, better readme and complete python bindings
dtourolle
2026-05-12 21:23:33 +02:00
c39db82763
Add a per node error handler possibility
dtourolle
2026-05-10 19:51:23 +02:00
1e9ba5ee66
Add a unified observability interface for applications with multiple networks
dtourolle
2026-05-10 19:08:40 +02:00
278c122e8f
Add shared reasource tag to allow coordination of usage
dtourolle
2026-05-09 15:22:27 +02:00
9acc42b2e9
Fix fanout naming for debug graph
better-examples
dtourolle
2026-05-09 09:54:40 +02:00
da8f4d9926
Add debug graph to static network
dtourolle
2026-05-09 08:59:19 +02:00
011b5eb35f
fix web debuginterface
dtourolle
2026-05-09 08:40:06 +02:00
9ce581b5ce
Fixed bug when generating identical fanouts
dtourolle
2026-05-09 08:36:51 +02:00
2bca2a7554
Add static network
dtourolle
2026-05-08 20:00:15 +02:00
3c683c821d
Add more exmaples and fix CI
dtourolle
2026-05-08 18:28:12 +02:00
127ffb3849
Fix CI
dtourolle
2026-05-08 18:09:13 +02:00
2a5c0a0b4d
Add build infra
dtourolle
2026-05-08 18:00:03 +02:00
5e77dc836b
First attempt
dtourolle
2026-05-08 17:48:16 +02:00