Add support for std::thread::yield_now

This commit is contained in:
David Cook
2020-04-18 19:31:02 -05:00
parent 11cd87e457
commit 7b69a6271e
3 changed files with 13 additions and 0 deletions
+3
View File
@@ -312,6 +312,9 @@ fn emulate_foreign_item_by_name(
// We do not support forking, so there is nothing to do here.
this.write_null(dest)?;
}
"sched_yield" => {
this.write_null(dest)?;
}
// Incomplete shims that we "stub out" just to get pre-main initialization code to work.
// These shims are enabled only when the caller is in the standard library.
+5
View File
@@ -201,6 +201,11 @@ fn emulate_foreign_item_by_name(
// FIXME: we should set last_error, but to what?
this.write_null(dest)?;
}
"SwitchToThread" => {
// Note that once Miri supports concurrency, this will need to return a nonzero
// value if this call does result in switching to another thread.
this.write_null(dest)?;
}
// Better error for attempts to create a thread
"CreateThread" => {
+5
View File
@@ -10,6 +10,7 @@ fn main() {
test_rwlock_stdlib();
}
test_spin_loop_hint();
test_thread_yield_now();
}
fn test_mutex_stdlib() {
@@ -56,3 +57,7 @@ fn would_block(&self) -> bool {
fn test_spin_loop_hint() {
atomic::spin_loop_hint();
}
fn test_thread_yield_now() {
std::thread::yield_now();
}