lumiera_documentation/wiki
Ichthyostega 50306db164 Library: more stringent deleter logic
The setup for `ArrayBucket` is special, insofar it shell de-allocate itself,
which creates the danger of re-entrant calls, or to the contrary, the danger
to invoke this clean-up function without actually invoking the destructor.

These problems become relevant once the destructor function itself is statefull,
as is the case when embedding a non-trivial, instance bound allocator
to be used for the clean-up work. Using the new `lib::TrackingAllocator`
highlighted this potential problem, since the allocator maintains a use-count.

Thus I decided to move the »destruction mechanics« one level down into
a dedicated and well encapsulated base class; invoking ArrayBucket's destructor
thereby becomes the only way to trigger the clean-up, and even ElementFactory::destroy()
can now safely check if the destructor was already invoked, and otherwise
re-invoke itself through this embedded destructor function. Moreover,
as an additional safety measure, the actual destructor function is now
moved into the local stack frame of the object's destructor call, removing
any possibility for the de-allocation to interfere with the destructor
invokation itself
2024-06-18 18:15:58 +02:00
..
draw Job-Planning: new draft - organise the overall planning process 2023-04-17 04:51:38 +02:00
DIR_INFO update some DIR_INFO entries 2011-04-05 00:44:30 +02:00
dump Scheduler-test: complete and document the Load-peak tests 2024-04-12 02:23:31 +02:00
empty.html TiddlyWiki: bugfix for Firefox Quantum -- use HTML5 web storage instead of a Cookie 2018-10-20 02:07:10 +02:00
InterfaceConcept_Varga.mm Lumiera GUI thoughts -- Mindmap to complement the Interface concept PDF 2015-04-26 23:22:42 +02:00
renderengine.html Invocation: Reassessment of existing code 2024-05-05 15:12:23 +02:00
thinkPad.ichthyo.mm Library: more stringent deleter logic 2024-06-18 18:15:58 +02:00
uml
workflow.mm DOC: expand concept map 2014-10-25 01:56:44 +02:00