Skip to content

Force flush of local buffer #34

Description

@ibraheemdev

Currently, Guard::flush only succeeds if there are enough entries in the local buffer to be used as reclamation nodes for any active threads. In cases where there are high priority large objects, users may want to force flush the buffer even if there are not enough entries. We can expose Guard::force_flush that does this by allocating nodes on-demand to perform the reclamation, or potentially estimating the number of active threads and allocating a single buffer to serve as multiple nodes (though this seems tricky, and might be left for a future optimization). Though allocating to perform a flush sounds counterintuitive, this allocation will likely be very small compared to the memory that needs to be reclaimed, and is worth it if large objects are retired infrequently.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions