diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index c35fbef6c8b42cf817bc52c2d66f75832e09846e..338d17a487a1526c7cac741f92c8628735b79736 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -695,6 +695,9 @@ const PosixThreadImpl = struct { .linux => { return LinuxThreadImpl.getCpuCount(); }, + .emscripten => { + return @as(usize, @intCast(std.os.emscripten.emscripten_num_logical_cores())); + }, .openbsd => { var count: c_int = undefined; var count_size: usize = @sizeOf(c_int); diff --git a/lib/std/os/emscripten.zig b/lib/std/os/emscripten.zig index bb833a519a0d4561f61eca8ff33cf14158501135..b7beb70eb7e7c05ed48802c962edd579df63e6a5 100644 --- a/lib/std/os/emscripten.zig +++ b/lib/std/os/emscripten.zig @@ -882,6 +882,7 @@ pub extern "c" fn emscripten_hide_mouse() void; pub extern "c" fn emscripten_set_canvas_size(width: c_int, height: c_int) void; pub extern "c" fn emscripten_get_canvas_size(width: *c_int, height: *c_int, isFullscreen: *c_int) void; pub extern "c" fn emscripten_get_now() f64; +pub extern "c" fn emscripten_num_logical_cores() c_int; pub extern "c" fn emscripten_random() f32; pub const em_idb_onload_func = ?*const fn (?*anyopaque, ?*anyopaque, c_int) callconv(.c) void; pub extern "c" fn emscripten_idb_async_load(db_name: [*:0]const u8, file_id: [*:0]const u8, arg: ?*anyopaque, onload: em_idb_onload_func, onerror: em_arg_callback_func) void;