[https://github.com/bung87/psutil-nim/blob/master/src/psutil/psutil_macosx.nim](https://github.com/bung87/psutil-nim/blob/master/src/psutil/psutil_macosx.nim)
    
    
    proc cpu_times*(): CPUTimes =
        
        var count = HOST_CPU_LOAD_INFO_COUNT
        let host_port = mach_host_self()
        var r_load: host_cpu_load_info_data_t
        let error = host_statistics(cint(host_port), HOST_CPU_LOAD_INFO, cast[
                host_info_t](r_load.addr), count.addr)
        
        if error != KERN_SUCCESS:
            raise newException(OSError, "host_statistics(HOST_CPU_LOAD_INFO) 
syscall failed: $1" %
                    mach_error_string(error))
        mach_port_deallocate(mach_task_self(), host_port)
        
        result.user = r_load.cpu_ticks[CPU_STATE_USER].cdouble / CLK_TCK
        result.nice = r_load.cpu_ticks[CPU_STATE_NICE].cdouble / CLK_TCK
        result.system = r_load.cpu_ticks[CPU_STATE_SYSTEM].cdouble / CLK_TCK
        result.idle = r_load.cpu_ticks[CPU_STATE_IDLE].cdouble / CLK_TCK
    
    
    Run

[https://github.com/giampaolo/psutil/blob/7d512c8e4442a896d56505be3e78f1156f443465/psutil/_psutil_osx.c#L586](https://github.com/giampaolo/psutil/blob/7d512c8e4442a896d56505be3e78f1156f443465/psutil/_psutil_osx.c#L586)

Reply via email to