-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7 from nabbar/AddWindowsRLimit
Add windows r limit capabilities for File Descriptor (NOFILE) * For Windows build, please follow this note : * 1) install package gcc-multilib gcc-mingw-w64 to build C source with GCC * you will having this binaries * - i686-w64-mingw32* for 32-bit Windows; * - x86_64-w64-mingw32* for 64-bit Windows. * locate you binaries gcc mingw path and note it: * - win32 : updatedb && locate i686-w64-mingw32-gcc * - win64 : updatedb && locate x86_64-w64-mingw32-gcc * 2) if you have an error in the build, or if the .o object file is not present in golib/njg-ioutils/maxstdio/, run this step * - go to golib/njg-ioutils/maxstdio folder * - gcc -c maxstdio.c * 3) for Win32 use this env var in prefix of your go build command (recommend to use -a flag) : * CC=/usr/bin/i686-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -a -v ... * 4) for win64 use this env var in prefix of your go build command (recommend to use -a flag) : * CC=/usr/bin/x86_64-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -a -v ... * * Normally no problem will be result in the build
- Loading branch information
Showing
7 changed files
with
93 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#include "maxstdio.h" | ||
#include <stdio.h> | ||
|
||
int CGetMaxSTDIO() { | ||
return _getmaxstdio(); | ||
} | ||
|
||
int CSetMaxSTDIO(int new_max) { | ||
return _setmaxstdio(new_max); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// +build windows cgo | ||
|
||
package maxstdio | ||
|
||
// #cgo CFLAGS: -g -Wall | ||
// #include <stdlib.h> | ||
// #include "maxstdio.h" | ||
import "C" | ||
|
||
func GetMaxStdio() int { | ||
return int(C.CGetMaxSTDIO()) | ||
} | ||
|
||
func SetMaxStdio(newMax int) int { | ||
return int(C.CSetMaxSTDIO(C.int(newMax))) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#ifndef _MAXSTDIO_H | ||
#define _MAXSTDIO_H | ||
int CGetMaxSTDIO(); | ||
int CSetMaxSTDIO(int new_max); | ||
#endif |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package main | ||
|
||
import ( | ||
"fmt" | ||
"os" | ||
|
||
njs_ioutils "github.com/nabbar/golib/njs-ioutils" | ||
) | ||
|
||
func main() { | ||
println("test to print Max STDIO NOFILE capabilities !!") | ||
c, _, e := njs_ioutils.SystemFileDescriptor(0) | ||
println(fmt.Sprintf("Actual limit is : %v | err : %v", c, e)) | ||
|
||
if e != nil { | ||
os.Exit(1) | ||
} | ||
|
||
println("test to Change Max STDIO NOFILE capabilities !!") | ||
c, _, e = njs_ioutils.SystemFileDescriptor(c + 512) | ||
println(fmt.Sprintf("New limit is : %v | err : %v", c, e)) | ||
|
||
if e != nil { | ||
os.Exit(1) | ||
} | ||
} |