Changeset e32eec3 in Lumiera
- Timestamp:
-
2026-05-23T23:38:35Z
(3 weeks ago)
- Author:
- Ichthyostega <prg@…>
- Branches:
- dev/play, documentation, integration
- Children:
- 0256ad8
- Parents:
- cd7581b
- git-author:
- Ichthyostega <prg@…> (23/05/26 21:22:25)
- git-committer:
- Ichthyostega <prg@…> (23/05/26 23:38:35)
- Message:
-
BufferProvider: integrate the new race protection feature
This makes the test case pass, validating the theory.
Each AllocReceiver now integrates a lib::LiveMark instance,
and the callbacks are dispatched using the corresponding
LiveMark::SafeHandle, so that it is no longer possible
to dispatch allocation messages to a defunct receiver.
Furthermore, the LiveMark is explicitly disengaged prior
to unwinding a local pool, so that no further pending requests
can be handled ans dispatched concurrently. The local pool
sends back all the remaining allocations via async queue
to the EngineBufferManager
Not that such a shutdown can be triggered any time,
since an exception or failure might cause a worker thread
to unwind, thereby destroying the thread-local LocalMemPool
without further notice.
-
(No files)
-