diff --git a/src/libstd/os.rs b/src/libstd/os.rs index 0747e7ccbe3fd..dfbf61cc890b7 100644 --- a/src/libstd/os.rs +++ b/src/libstd/os.rs @@ -57,6 +57,16 @@ use libc::c_char; #[cfg(windows)] use str::OwnedStr; +/// Get the number of cores available +pub fn num_cpus() -> uint { + unsafe { + return rust_get_num_cpus(); + } + + extern { + fn rust_get_num_cpus() -> libc::uintptr_t; + } +} pub static TMPBUF_SZ : uint = 1000u; static BUF_BYTES : uint = 2048u; @@ -1762,6 +1772,11 @@ mod tests { n } + #[test] + fn test_num_cpus() { + assert!(os::num_cpus() > 0); + } + #[test] fn test_setenv() { let n = make_rand_name(); diff --git a/src/libstd/rt/util.rs b/src/libstd/rt/util.rs index 670d4aa2061f1..fa30ddbcc48b5 100644 --- a/src/libstd/rt/util.rs +++ b/src/libstd/rt/util.rs @@ -11,23 +11,11 @@ use from_str::FromStr; use from_str::from_str; use libc::uintptr_t; -use libc; use option::{Some, None, Option}; use os; use str::Str; use sync::atomics; -/// Get the number of cores available -pub fn num_cpus() -> uint { - unsafe { - return rust_get_num_cpus(); - } - - extern { - fn rust_get_num_cpus() -> libc::uintptr_t; - } -} - /// Dynamically inquire about whether we're running under V. /// You should usually not use this unless your test definitely /// can't run correctly un-altered. Valgrind is there to help @@ -81,7 +69,7 @@ pub fn default_sched_threads() -> uint { if limit_thread_creation_due_to_osx_and_valgrind() { 1 } else { - num_cpus() + os::num_cpus() } } }