Closed gparmer closed 4 years ago
Added a Treiber stack to track blocked threads. Now multicore-safe. Wakeups still don't go between cores, so that is the last thing to do. @phanikishoreg said he can do this.
Added channels. Added tests to crttests.c
. See crt_chan.h
for the API and implementation. Quite simple.
@hungry-foolish @phanikishoreg
This was meant for feedback. That was accomplished. Closing now.
Summary of this Pull Request (PR)
Some support for block-point-based locks along with a simple test (
crttest
). This is a feature addition, and changes existing code very minimally, so I don't see much risk for existing applications. I want this to concretely start a more in-depth blockpoint discussion.Limitations.
sl
support is not. Thestacklist
needs modification to track blocked threads with trebor stacks. Update: Added a Treiber stack to track blocked threads. Now this should be multi-core aware.I believe this blockpoint API is stable. Next steps will be to
sl
supports cross-core wakeup.Intent for your PR
Choose one (Mandatory):
Reviewers (Mandatory):
@WenyuanShao @phanikishoreg @hungry-foolish
Code Quality
As part of this pull request, I've considered the following:
Style:
Code Craftsmanship:
Testing
I've tested the code using the following test programs (provide list here):