-
-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This branch adds an implementation of a singly-linked mutable FIFO `Stack`and a singly-linked lock-free FIFO `TransferStack` in `cordyceps::stack`. A `Stack` is just your traditional FIFO stack structure. `TransferStack` is a bit more interesting --- it's a simplification of the traditional lock-free Treiber stack wher all elements are popped into a new mutable `Stack` in a single atomic operation. This avoids the ABA problem issues common with naive Treiber stack implementations. It's intended primarily for use in a `mimalloc`-style sharded per-core memory allocator. Closes #137 Signed-off-by: Eliza Weisman <eliza@elizaswebsite>
- Loading branch information
Showing
6 changed files
with
968 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.