mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

* Modify DefaultTimeout to 120 seconds A temporary workaround for nodes having trouble to sync (currently the download of pruning point related data during IBD takes more than 30 seconds) * Cache existence in reachability store * Cache block level in the header * Fix IBD indication on submit block * Add hardForkOmitGenesisFromParentsDAAScore logic * Fix NumThreads bug in the wallet * Get rid of ParentsAtLevel header method * Fix a bug in BuildPruningPointProof * Increase race detector timeout * Add cache to BuildPruningPointProof * Add comments and temp comment out go vet * Fix ParentsAtLevel * Dont fill empty parents * Change HardForkOmitGenesisFromParentsDAAScore in fast netsync test * Add --allow-submit-block-when-not-synced in stability tests * Fix TestPruning * Return fast tests * Fix off by one error on kaspawallet * Fetch only one block with trusted data at a time * Update fork DAA score * Don't ban for unexpected message type * Fix tests Co-authored-by: Michael Sutton <mikisiton2@gmail.com> Co-authored-by: Ori Newman <>
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
// Copyright (c) 2013-2014 The btcsuite developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
//go:build !windows && !plan9
|
|
// +build !windows,!plan9
|
|
|
|
package limits
|
|
|
|
import (
|
|
"syscall"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// SetLimits raises some process limits to values which allow kaspad and
|
|
// associated utilities to run.
|
|
func SetLimits(desiredLimits *DesiredLimits) error {
|
|
var rLimit syscall.Rlimit
|
|
|
|
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if rLimit.Cur > desiredLimits.FileLimitWant {
|
|
return nil
|
|
}
|
|
if rLimit.Max < desiredLimits.FileLimitMin {
|
|
err = errors.Errorf("need at least %d file descriptors",
|
|
desiredLimits.FileLimitMin)
|
|
return err
|
|
}
|
|
if rLimit.Max < desiredLimits.FileLimitWant {
|
|
rLimit.Cur = rLimit.Max
|
|
} else {
|
|
rLimit.Cur = desiredLimits.FileLimitWant
|
|
}
|
|
err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
|
|
if err != nil {
|
|
// try min value
|
|
rLimit.Cur = desiredLimits.FileLimitMin
|
|
err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|