use sched_yield on linux and freebsd
pthread_yield is non-standard, while sched_yield is POSIX The Linux documentation recommends using the standard function. This is the only feature we're currently using that's present in glibc but not in musl.
This commit is contained in:
parent
8211539114
commit
e043644cea
1 changed files with 0 additions and 10 deletions
|
@ -273,13 +273,8 @@ mod imp {
|
|||
assert_eq!(pthread_detach(native), 0);
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
#[cfg(target_os = "android")]
|
||||
pub unsafe fn yield_now() { assert_eq!(sched_yield(), 0); }
|
||||
|
||||
#[cfg(not(target_os = "macos"), not(target_os = "android"))]
|
||||
pub unsafe fn yield_now() { assert_eq!(pthread_yield(), 0); }
|
||||
|
||||
// glibc >= 2.15 has a __pthread_get_minstack() function that returns
|
||||
// PTHREAD_STACK_MIN plus however many bytes are needed for thread-local
|
||||
// storage. We need that information to avoid blowing up when a small stack
|
||||
|
@ -326,12 +321,7 @@ mod imp {
|
|||
fn pthread_attr_setdetachstate(attr: *mut libc::pthread_attr_t,
|
||||
state: libc::c_int) -> libc::c_int;
|
||||
fn pthread_detach(thread: libc::pthread_t) -> libc::c_int;
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
#[cfg(target_os = "android")]
|
||||
fn sched_yield() -> libc::c_int;
|
||||
#[cfg(not(target_os = "macos"), not(target_os = "android"))]
|
||||
fn pthread_yield() -> libc::c_int;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue