summaryrefslogtreecommitdiffstats
path: root/include/framework/scheduling/Epoch.h
Commit message (Collapse)AuthorAgeFilesLines
* Initial integration of new buffering scheme into frameworkDouglas Rumbaugh2024-01-121-64/+16
| | | | | It isn't working right now (lotsa test failures), but we're to the debugging phase now.
* Refactoring: corrected a number of names and added more commentsDouglas Rumbaugh2023-12-131-1/+1
|
* Fixed various concurrency bugsDouglas Rumbaugh2023-11-091-5/+16
| | | | | | | | | | 1. The system should now cleanly shutdown when the DynamicExtension object is destroyed. Before now, this would lead to use-after-frees and/or deadlocks. 2. Improved synchronization on mutable buffer structure management to fix the issue of the framework losing track of buffers during Epoch changeovers.
* Comment and License updatesDouglas Rumbaugh2023-11-071-1/+1
|
* DynamicExtension: internal_append fixesDouglas Rumbaugh2023-11-061-0/+29
| | | | | | Fixed a few bugs with concurrent operation of internal_append, as well as enabled the spawning of multiple empty buffers while merges are currently active.
* Epoch: Adjusted add empty buffer behaviorDouglas Rumbaugh2023-11-061-1/+15
| | | | | | | | Add empty buffer now supports a CAS-like operation, where it will only add a buffer if the currently active one is still the same as when the decision to add a buffer was made. This is to support adding new buffers on insert outside of the merge-lock, so that multiple concurrent threads cannot add multiple new empty buffers.
* Fixes for various bugs under SerialSchedulerDouglas B. Rumbaugh2023-10-311-5/+26
|
* Epoch: Creating an epoch now takes references on buffers + versionsDouglas B. Rumbaugh2023-10-311-0/+2
| | | | | | | | | | When an epoch is created using the constructor Epoch(Structure, Buffer), it will call take_reference() on both. This was necessary to ensure that the destructor doesn't fail, as it releases references and fails if the refcnt is 0. It releases the user of the object from the burden of manually taking references in this situation.
* General Comment + Consistency updatesDouglas Rumbaugh2023-10-301-1/+0
|
* Epoch/DynamicExtension: added cv to epoch retirement checkDouglas Rumbaugh2023-10-301-0/+31
| | | | | | Instead of busy waiting on the active job count, a condition variable is now used to wait for all active jobs to finish before freeing an epoch's resources.
* Concurrency updates + fixes for compile errorsDouglas Rumbaugh2023-10-301-1/+3
|
* Began moving to an explicit epoch-based systemDouglas Rumbaugh2023-10-231-0/+128
I started moving over to an explicit Epoch based system, which has necessitated a ton of changes throughout the code base. This will ultimately allow for a much cleaner set of abstractions for managing concurrency.