-
Notifications
You must be signed in to change notification settings - Fork 385
Implement basic support for concurrency (Linux/macos only) #1284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
77 commits
Select commit
Hold shift + click to select a range
82f17ab
Implement basic support for concurrency (Linux only).
58a6a27
Add a warning that Miri does not check for data-races.
8dd8f19
Update to support the updated API.
92946b5
Add a test for thread locals.
aef4c95
Fix the problem of sending pointed to thread local statics. Add a reg…
1f33f04
Move pthread_create and related shims to a separate file.
ed9c7d1
Report that we do not support foreign thread local statics.
5218419
Fix comments in TLS.
f21197f
Store the thread name.
b04bf8a
Rustfmt the test.
2202278
Fix pthread_self.
1c8a59c
Rebase on PR 1157.
d907fb5
Rename ThreadSet to ThreadManager.
0c4303c
Small refactoring in pthread sync: extract common functionallity to s…
963e969
Generate fresh allocation ids for thread locals in eval_maybe_thread_…
51b16e5
Generate thread local allocations in eval_maybe_thread_local_static_c…
325c31e
Address some of the reviewers comments.
4609c3c
Rename eval_maybe_thread_local_static_const to adjust_global_const.
d9ec0f2
Add a missing newline in the test.
552080a
Fix imports.
94118d4
Make an assert message consistent with other asserts.
1d0eb93
Fix typo in a comment.
688cacb
Cleanup the implementation of adjust_global_const.
a585dc8
Add a missing newline.
44e9305
Rename threads to thread to match the Rust standard library.
d062f63
Fix support for MacOS.
134533d
Add a comment explaining global destructors on MacOS.
46fd333
Implement thread::yield_now.
421be27
Add concurrency tests.
c84b289
Update a comment in README about what concurrency checks we support.
d6c0392
Rename MacOS set global dtor function.
69df2e1
Move prctl to Linux specific shims.
eab38df
Change the warning message.
75e6549
Improve prctl, add a test.
94cbe88
Many small changes to thread management.
80459bb
Improve concurrency tests.
17f7bc8
Fix how a pthread_create function argument is constructed.
5b55e07
Add more concurrency tests.
e4dc356
Track if a thread was already joined.
9a01c3f
Clarify comments about TLS destructor handling in Windows, add a test…
3bb1657
Small style fix.
452e36e
Print the thread name in Debug.
69eaaad
Fix merge error.
e7c2694
Make the main thread detached.
e7b82fd
Fix the test annotation.
40e50bf
Clarify test comments.
8a7dbde
Check prctl argument types and fix the test.
d45e985
Clarify FIXME.
eaa6326
Make multiple threads to try to join a thread while it is still running.
cc9248a
Ignore prctl test on MacOS because it does not support it.
90e9a87
Add an explanatory comment to the test.
8240ed2
Change the test not to rely on internals.
feb1883
Unify TLS dtors; move stepping outside.
04abf06
Move copying of the thread name to the client side.
bc9d007
Improve Debug formatting of the thread name.
ff5e35b
Added a test that joining main is UB.
64164b1
Improve comments.
60cd8aa
Delete a duplicate test.
39efdf3
Move prctl test to the same file as other libc tests.
6842eb2
Rename global tls dtor to thread dtor.
c4574dd
Many small changes to clean up code.
911ff7e
Improve style and comments.
d9e18ad
Make sure to remove thread local data only if we have destructor.
174adad
Use DLL_THREAD_DETACH when calling windows TLS destructor.
9ba3ef2
Change representation and conversion of ThreadId and BlockSetId.
207c6e7
Improve comments and code clarity.
356aecc
Add a FIXME.
f204b67
Merge dtors_running and last_dtor_key fields.
331dbd1
Add a test for joining in a destructor.
c56ef31
Improve comments.
df2ca53
Make From implementations non-failing.
1355574
Delete remaining tls entries after all destructors completed.
3b58541
Fix MacOS and Windows builds.
46b0317
Improve code readability and comments.
0e052ab
Use Entry API in set_dtors_running.
603ec0b
Fix a regression in Windows dtors.
48da0cf
Fix prctl SET_NAME and GET_NAME behaviour.
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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.
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.
Uh oh!
There was an error while loading. Please reload this page.