prevent race conditions with uvwasi_fd_close() #91
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.
This depends on #90 (the first commit in this PR).
uvwasi_fd_close()
performed the following operations:remove()
functionOnce the fd's mutex is released, another thread could acquire it
before the fd is removed from the file table. If this happens,
remove()
could destroy a held mutex.This commit updates
uvwasi_fd_close()
to perform the entiresequence while holding the file table's lock, preventing new
acquisitions of the fd's mutex.
Fixes: #88