lumiera_documentation/tests/vault/mem
Ichthyostega cd7581ba76 BufferProvider: investigate tricky race at thread shutdown
...even while this situation is unlikely, it needs to be considered:
A worker thread might terminate unexpectedly, due to an error;
all thread-local objects will be destroyed automatically — while the
`EngineBufferManager` might be processing further allocations requested
by that very thread, and dispatch them towards an already destroyed `LocalMemPool`

This turns out to be a nasty problem, since the whole setup was created
to allow the workers to operate independently from each other; any handshake
or registration/deregistration mechanism would require a lock of sorts,
thereby defeating the whole purpose of the setup.

The best solution I could find is to rely on a instance marker hash,
that can be checked with an atomic read prior to each dispatch of a
memory allocation. The destructor of the local pool would then be able
to ''disengage'', by invalidating that hash.

To evaluate this solution, I developed this mechanism
as a free-standing library component, called `LiveMark`
2026-05-21 01:47:11 +02:00
..
buffer-metadata-key-test.cpp BufferProvider: relocate into Vault Layer 2026-03-08 00:53:41 +01:00
buffer-metadata-test.cpp BufferProvider: lift the family-ID to the BufferStage level 2026-04-17 19:08:46 +02:00
buffer-provider-protocol-test.cpp BufferProvider: relocate into Vault Layer 2026-03-08 00:53:41 +01:00
buffer-proxy-adaptor-test.cpp OutputSlot: consider how to integrate the proxy provider 2026-03-17 00:48:08 +01:00
buffer-store-test.cpp BufferProvider: complete the clean-up effort 2026-04-14 01:22:55 +02:00
diagnostic-buffer-provider-test.cpp BufferProvider: relocate into Vault Layer 2026-03-08 00:53:41 +01:00
engine-buffer-manager-test.cpp Library: improve initial population of ScopedCollection 2026-05-14 22:46:06 +02:00
extent-family-test.cpp Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
local-buffer-stage-test.cpp BufferProvider: implement and verify the second case for synchronisation 2026-04-20 19:48:20 +02:00
local-buffer-store-test.cpp BufferProvider: investigate tricky race at thread shutdown 2026-05-21 01:47:11 +02:00
local-mem-pool-test.cpp BufferProvider: add the bulk of the LocalBufferStore implementation 2026-05-19 01:05:26 +02:00