Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Conversation

emixa-d
Copy link
Collaborator

@emixa-d emixa-d commented Nov 10, 2024

Reverts #110, because it introduces a concurrency bug #110 (comment) and it is being ignored. This is not only an elegance preference, this is a correctness issue.

timer-wheel-remove! is not an atomic procedure, so callers shouldn't fiddle with timer wheels of other schedulers.

Also, it might even happen without concurrent use of the same operation, because work-stealing exists.

Before that PR, it is a heap growth issue (though not precisely a 'never free' situation, more 'overly delayed free'). Replacing this by a concurrency issue (and in a concurrency library) isn't really an improvement.

@emixa-d
Copy link
Collaborator Author

emixa-d commented Nov 10, 2024

Also pinging @LiberalArtist whom I cannot add to "Reviewers".

@civodul
Copy link
Collaborator

civodul commented Nov 10, 2024

Apologies for overlooking #110 (comment) !

Hopefully we can find a solution that does not involve reverting everything, such as using an atomic box as I suggested there.

Let me know what you think.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants