disable hibernate on open torrents

This commit is contained in:
YouROK
2021-09-08 11:45:52 +03:00
parent 8f38a35b0f
commit 42434c2f46

View File

@@ -6,6 +6,9 @@ package main
import ( import (
"syscall" "syscall"
"time" "time"
"server/torr"
"server/torr/state"
) )
const ( const (
@@ -16,14 +19,27 @@ const (
var pulseTime = 1 * time.Minute var pulseTime = 1 * time.Minute
func Preconfig(kill bool) { func Preconfig(kill bool) {
// don't sleep/hibernate windows go func() {
kernel32 := syscall.NewLazyDLL("kernel32.dll") // don't sleep/hibernate windows
setThreadExecStateProc := kernel32.NewProc("SetThreadExecutionState") kernel32 := syscall.NewLazyDLL("kernel32.dll")
pulse := time.NewTicker(pulseTime) setThreadExecStateProc := kernel32.NewProc("SetThreadExecutionState")
for { pulse := time.NewTicker(pulseTime)
select { for {
case <-pulse.C: select {
setThreadExecStateProc.Call(uintptr(EsSystemRequired)) case <-pulse.C:
{
send := false
for i, torrent := range torr.ListTorrent() {
if torrent.Stat != state.TorrentInDB {
send = true
break
}
}
if send {
setThreadExecStateProc.Call(uintptr(EsSystemRequired))
}
}
}
} }
} }()
} }