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)

Note: See TracChangeset for help on using the changeset viewer.