github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/common/fdlimit/fdlimit_windows.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:33</date> 10 //</624450073459167232> 11 12 13 package fdlimit 14 15 import "errors" 16 17 //raise尝试最大化此进程的文件描述符允许量 18 //达到操作系统允许的最大硬限制。 19 func Raise(max uint64) error { 20 //该方法设计为NOP: 21 //*Linux/Darwin对应程序需要手动增加每个进程的限制 22 //*在Windows上,Go使用CreateFile API,该API仅限于16K个文件,非 23 //可从正在运行的进程中更改 24 //这样,我们就可以“请求”提高限额,这两种情况都有 25 //或者基于我们运行的平台没有效果。 26 if max > 16384 { 27 return errors.New("file descriptor limit (16384) reached") 28 } 29 return nil 30 } 31 32 //当前检索允许由此打开的文件描述符数 33 //过程。 34 func Current() (int, error) { 35 //请参阅“加薪”,了解我们为什么使用硬编码16K作为限制的原因。 36 return 16384, nil 37 } 38 39 //最大检索此进程的最大文件描述符数 40 //允许自己请求。 41 func Maximum() (int, error) { 42 return Current() 43 } 44