summaryrefslogtreecommitdiff
path: root/cli/ops/os.rs
diff options
context:
space:
mode:
authorElias Sjögreen <eliassjogreen1@gmail.com>2020-10-26 15:54:27 +0100
committerGitHub <noreply@github.com>2020-10-26 10:54:27 -0400
commit305a9c04ba60630f9708b681cfebb522a6110cc3 (patch)
tree36761c300215f1674c0ad2865f19538d88ec129e /cli/ops/os.rs
parentd52fb903cda4c30bb1673260c673ba27167ab7b1 (diff)
feat(unstable): add Deno.systemCpuInfo() (#7774)
Diffstat (limited to 'cli/ops/os.rs')
-rw-r--r--cli/ops/os.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/cli/ops/os.rs b/cli/ops/os.rs
index 5265d4d08..6fd404a23 100644
--- a/cli/ops/os.rs
+++ b/cli/ops/os.rs
@@ -23,6 +23,7 @@ pub fn init(rt: &mut deno_core::JsRuntime) {
super::reg_json_sync(rt, "op_loadavg", op_loadavg);
super::reg_json_sync(rt, "op_os_release", op_os_release);
super::reg_json_sync(rt, "op_system_memory_info", op_system_memory_info);
+ super::reg_json_sync(rt, "op_system_cpu_info", op_system_cpu_info);
}
fn op_exec_path(
@@ -172,3 +173,20 @@ fn op_system_memory_info(
Err(_) => Ok(json!({})),
}
}
+
+fn op_system_cpu_info(
+ state: &mut OpState,
+ _args: Value,
+ _zero_copy: &mut [ZeroCopyBuf],
+) -> Result<Value, AnyError> {
+ super::check_unstable(state, "Deno.systemCpuInfo");
+ state.borrow::<Permissions>().check_env()?;
+
+ let cores = sys_info::cpu_num().ok();
+ let speed = sys_info::cpu_speed().ok();
+
+ Ok(json!({
+ "cores": cores,
+ "speed": speed
+ }))
+}