Module: Libuv

Extended by:
Accessors
Defined in:
lib/libuv.rb,
lib/libuv/q.rb,
lib/libuv/dns.rb,
lib/libuv/tcp.rb,
lib/libuv/tty.rb,
lib/libuv/udp.rb,
lib/libuv/file.rb,
lib/libuv/idle.rb,
lib/libuv/pipe.rb,
lib/libuv/work.rb,
lib/libuv/async.rb,
lib/libuv/check.rb,
lib/libuv/error.rb,
lib/libuv/spawn.rb,
lib/libuv/timer.rb,
lib/libuv/handle.rb,
lib/libuv/signal.rb,
lib/libuv/ext/ext.rb,
lib/libuv/prepare.rb,
lib/libuv/reactor.rb,
lib/libuv/version.rb,
lib/libuv/fs_event.rb,
lib/libuv/ext/types.rb,
lib/libuv/fiber_pool.rb,
lib/libuv/filesystem.rb,
lib/libuv/mixins/net.rb,
lib/libuv/mixins/stream.rb,
lib/libuv/mixins/listener.rb,
lib/libuv/mixins/resource.rb,
lib/libuv/mixins/accessors.rb,
lib/libuv/mixins/fs_checks.rb,
lib/libuv/ext/platform/unix.rb,
lib/libuv/mixins/assertions.rb,
lib/libuv/ext/platform/windows.rb,
lib/libuv/ext/platform/darwin_x64.rb

Defined Under Namespace

Modules: Accessors, Assertions, Ext, FsChecks, Listener, Net, Q, Resource, Stream Classes: Async, Check, Dns, Error, FSEvent, FiberPool, File, Filesystem, Handle, Idle, Pipe, Prepare, Reactor, Signal, Spawn, TCP, TTY, Timer, UDP, Work

Constant Summary collapse

DefaultThread =
Thread.current
VERSION =
'3.3.0'

Constants included from Accessors

Accessors::Functions

Class Method Summary collapse

Methods included from Accessors

reactor

Class Method Details

.cpu_countInteger?

Returns the number of CPU cores on the host platform

Returns:

  • (Integer, nil)

    representing the number of CPU cores or nil if failed



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/libuv.rb', line 53

def self.cpu_count
    cpu_info = FFI::MemoryPointer.new(:pointer)
    cpu_count = FFI::MemoryPointer.new(:int)
    if ::Libuv::Ext.cpu_info(cpu_info, cpu_count) >= 0
        count = cpu_count.read_int
        ::Libuv::Ext.free_cpu_info(cpu_info.read_pointer, count)
        return count
    else
        return nil
    end
end