diff options
-rw-r--r-- | lib/system.nim | 3 | ||||
-rw-r--r-- | lib/system/sysio.nim | 8 | ||||
-rw-r--r-- | web/news/version_0_15_released.rst | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/lib/system.nim b/lib/system.nim index 3029d0865..a1668cc78 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2715,6 +2715,9 @@ when not defined(JS): #and not defined(nimscript): ## ## Default mode is readonly. Returns true iff the file could be reopened. + proc setStdIoUnbuffered() {.tags: [], benign.} + ## Configures `stdin`, `stdout` and `stderr` to be unbuffered. + proc close*(f: File) {.tags: [].} ## Closes the file. diff --git a/lib/system/sysio.nim b/lib/system/sysio.nim index 62ea40e17..552213a2d 100644 --- a/lib/system/sysio.nim +++ b/lib/system/sysio.nim @@ -369,4 +369,12 @@ proc writeFile(filename, content: string) = else: sysFatal(IOError, "cannot open: ", filename) +proc setStdIoUnbuffered() = + when declared(stdout): + discard setvbuf(stdout, nil, IONBF, 0) + when declared(stderr): + discard setvbuf(stderr, nil, IONBF, 0) + when declared(stdin): + discard setvbuf(stdin, nil, IONBF, 0) + {.pop.} diff --git a/web/news/version_0_15_released.rst b/web/news/version_0_15_released.rst index ad3119cca..618e57baa 100644 --- a/web/news/version_0_15_released.rst +++ b/web/news/version_0_15_released.rst @@ -16,6 +16,7 @@ Library Additions - Added ``readHeaderRow`` and ``rowEntry`` to ``parsecsv.nim`` to provide a lightweight alternative to python's ``csv.DictReader``. +- Added ``setStdIoUnbuffered`` proc to ``system.nim`` to enable unbuffered I/O. Compiler Additions ------------------ |