latentprion and Cursor
e6d9bfe30c
SharedResourceGroup: add move constructor for initial resource.
...
Allows move-only ResourceType values (e.g. containers of unique_ptr) to initialize rsrc without copying.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-07 19:14:46 -04:00
latentprion and Cursor
fd2440e4ee
EnvKvStore: find/get split, typed int accessors, nest DotenvParser.
...
Rename optional lookup to find(), add throwing get(), and provide
getInt/getPositiveInt/getPositiveNonZeroInt with optional defaults so
callers own missing-key policy without baking domain period semantics
into spinscale.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-14 19:26:14 -04:00
latentprion and Cursor
21fa125d52
Summarize and merge MultiOperationResultSetWithException from settled Groups.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-14 05:06:18 -04:00
latentprion and Cursor
3156652257
Document closeAdmission-before-cancel nursery stop ordering.
...
Explain the admit-after-cancel race and that daemons should disconnect at
the protocol layer before sealing admission (or handle closed-admission on enqueue).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-13 19:02:52 -04:00
latentprion
88d6367491
probe: barrier TLS init until make_shared arms shared_from_this.
...
PuppeteerThread starts its OS thread in the constructor, so initializeTls()
could race and throw bad_weak_ptr; wait for the harness barrier first.
2026-07-12 06:10:41 -04:00
latentprion and Cursor
5e6108d396
Migrate test timer awaiters from deadline_timer to steady_timer.
...
Boost 1.90 marks deadline_timer deprecated; keep historical type aliases so existing spinscale tests need no renames.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-12 05:22:11 -04:00
latentprion and Cursor
3d23ed21be
cmake: omit Boost::system on Boost 1.89+ where the compiled stub is gone.
...
Keep linking Boost::log, and only require Boost::system on older package sets that still ship libboost_system.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-11 22:27:55 -04:00
latentprion and Cursor
15ebf375ef
spinscale: split probe harness from test support.
...
Move ProbeComponentThreadHarness into spinscale_probe_support (sscl::probe) so tools can link it without gtest; keep a sscl::tests compatibility shim.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-11 22:03:19 -04:00
latentprion and Cursor
7c9bec7b9c
spinscale: document slot-cancel-before-internal-op-cancel ordering.
...
Shutdown call sites must set slot cancelers before cancelling timers, I/O,
or hardware capture so callees observe stop intent when unblocked.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-11 18:26:54 -04:00
hayodea and Cursor
01efbd8c94
Add sscl::co::syncAwaitNonViralCoro for blocking non-viral coroutine launch.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-29 00:21:45 -04:00
hayodea
3d81ee92aa
New test support harness primitives for testing stimbuffapis
2026-06-13 18:47:44 -04:00
hayodea
2f31e9a034
Adversarial review on test porting plan
2026-06-13 17:59:06 -04:00
hayodea
a29c779f6e
Tests: Add all tests from the coro creation repo
...
We went back and brought along all the tests we implemented while
we were building the new coro framework.
2026-06-13 17:17:57 -04:00
hayodea
1763685c0e
Tests: Move qutex and nursery tests into Libspinscale repo
2026-06-13 16:17:40 -04:00
hayodea
016b2d26de
SharedRsrcGrp: Allow construction of rsrc by copy
2026-06-13 11:46:16 -04:00
hayodea
ffe86369e2
Add EnvKvStore for envvar parsing and interleaving
2026-06-11 19:16:46 -04:00
hayodea
00be517f30
Printing: print fewer blank newlines
2026-06-11 11:16:37 -04:00
hayodea
ebf0fa2921
Nursery: Document intended usage form
2026-06-09 21:25:25 -04:00
hayodea
d33e70f14a
Nursery: document syncAwaitAll's caller io_context requirement for LLMs
2026-06-09 16:48:58 -04:00
hayodea
656aae37c8
Nursery: Capture onSettledCb before fillSlot in launch()
2026-06-09 10:55:33 -04:00
hayodea
5689ac3914
Nursery: Don't pass exceptions to main loop
2026-06-09 10:43:20 -04:00
hayodea
565e339a8b
Nursery: Update examples to use slot and not lease in onSettled
2026-06-09 08:07:44 -04:00
hayodea
b04b0db155
Add a Nursery class for dynamically managing nonviral coros
2026-06-09 05:46:51 -04:00
hayodea
44894299b4
Group: Enable aggregate exception to be passed as ptr
2026-06-07 19:33:42 -04:00
hayodea
edde8f4a64
Don't auto-throw non-viral callee exceptions before callerLambda
2026-06-06 04:47:59 -04:00
hayodea
8a7d4272bd
Add readme file
2026-06-01 09:40:03 -04:00
hayodea
c60854845d
New DynamicViralPostingInvoker: takes runtime post-to target
2026-05-31 07:13:10 -04:00
hayodea
a53e0ca325
PostingPromise: reorder post-to target to be 1st arg
2026-05-30 21:45:51 -04:00
hayodea
42076d6c78
PostingPromise: Add dynamic post-to io_context targeting
...
This allows us to dynamically choose the target that a PostingPromise
coro will be posted to at runtime rather than only posting to the
statically configured ThreadTag::io_context() target. Big usability
improvement.
2026-05-30 20:44:53 -04:00
hayodea
2749d77d65
Remove boostAsioLinkageFix from headers
2026-05-30 12:10:38 -04:00
hayodea
3ea1475757
Boost.ASIO: potential fix for top_E shlib segfaults
2026-05-30 12:00:30 -04:00
hayodea
6df9407e65
Boost.ASIO: update io_service=>io_context
2026-05-30 11:57:57 -04:00
hayodea
0afa3e16b8
SyncCanceler: Fix visibility; reuse helper method
2026-05-29 12:05:36 -04:00
hayodea
4dbc066aac
New class: SyncCancelerForAsyncWork
...
This class abstracts the pattern of running an async callee which
needs to be able to be canceled from a synchronous code path.
It really just lifts the logic that's regularly used in the
StimulusProducer path into a reusable abstraction.
2026-05-29 06:22:02 -04:00
hayodea
ca2cccaa9c
New multi-op result set class
2026-05-24 16:23:07 -04:00
hayodea
a14d622eaf
PuppetApp: Lifetime mgmt ops are now Viral
...
They no longer accept an exc_ptr and lambda for cb.
2026-05-24 16:11:08 -04:00
hayodea
16e0350245
CoQutex: Add instance name for debugging
2026-05-24 16:10:30 -04:00
hayodea
5f265567d1
Explain why CoQutex is superior to LockSet
2026-05-24 13:05:09 -04:00
hayodea
e7707dacdf
Unify [Non]PostingInvoker into Invoker
2026-05-24 04:32:44 -04:00
hayodea
5d139abff2
Split classes into neater header units
2026-05-24 04:28:30 -04:00
hayodea
e29bee52cf
Group now supports heterogeneous invokers for fanout
2026-05-24 04:01:34 -04:00
hayodea
daad2a8c95
Impl ViralNonPostingInv; fix member coro thisptr;
2026-05-24 02:25:04 -04:00
hayodea
abdb857e55
PuppetApp: Now use coros instead of CPS
2026-05-19 10:46:52 -04:00
hayodea
525530b567
Compilation fixups
2026-05-19 10:06:23 -04:00
hayodea
3f91cbf104
CompThr: make new changes compile
2026-05-19 10:01:15 -04:00
hayodea
6396cce7e0
Impl NonViralNonPostingInvoker; rename other invokers around posting behaviour
2026-05-19 09:57:24 -04:00
hayodea
15295ac05e
Update reutrn type
2026-05-19 06:45:59 -04:00
hayodea
dc58e5d521
CompThr: wrap lifetime mgmt ops in awaitable adapters
2026-05-19 06:18:23 -04:00
hayodea
1db3494d26
Remove superfluous file
2026-05-18 05:59:52 -04:00
hayodea
e94aaf9323
Update include paths and namespacing
2026-05-17 17:26:21 -04:00