| 123456789101112131415161718192021222324252627 |
- // Copyright (C) 2014 The Syncthing Authors.
- //
- // This Source Code Form is subject to the terms of the Mozilla Public
- // License, v. 2.0. If a copy of the MPL was not distributed with this file,
- // You can obtain one at https://mozilla.org/MPL/2.0/.
- //+build windows
- package syncthing
- import "syscall"
- import "time"
- func cpuUsage() time.Duration {
- handle, err := syscall.GetCurrentProcess()
- if err != nil {
- return 0
- }
- defer syscall.CloseHandle(handle)
- var ctime, etime, ktime, utime syscall.Filetime
- if err := syscall.GetProcessTimes(handle, &ctime, &etime, &ktime, &utime); err != nil {
- return 0
- }
- return time.Duration(ktime.Nanoseconds() + utime.Nanoseconds())
- }
|