CP-52039: Drop Semaphore from Xapi_stdext_threads #6094
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prior to version 4.12, OCaml's standard threads library (
systhreads
) had no builtin concept of a semaphore, so one was implemented inXapi_stdext_threads
.We replace all usages of this with
Semaphore.Counting
from the standard library and remove the implementation fromXapi_stdext_threads
.Technically, the interface provided by the previous semaphore is more general: it permits arbitrary adjustments to the semaphore's counter, allowing for a "weighted" style of locking. However, this is only used in one place (with a weight value of 1, which is the same decrement/increment value as normal).
All green on BVT+BST (
207043
) apart from 2 known issues. The number of users of the semaphore module in the codebase is quite low, which is why I think it's fine to drop the implementation entirely.