summaryrefslogtreecommitdiffstats
path: root/include/framework/scheduling/Epoch.h
Commit message (Collapse)AuthorAgeFilesLines
* 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.