Merge pull request #9846 from timotheecour/pr_getpid

add os.getCurrentProcessId()
This commit is contained in:
Andreas Rumpf
2018-12-05 08:12:17 +01:00
committed by GitHub
3 changed files with 12 additions and 1 deletions

View File

@@ -91,6 +91,7 @@ proc enumToString*(enums: openArray[enum]): string =
- Vm suport for float32<->int32 and float64<->int64 casts was added.
- There is a new pragma block `noSideEffect` that works like
the `gcsafe` pragma block.
- added os.getCurrentProcessId()
### Language changes

View File

@@ -2419,6 +2419,15 @@ proc isHidden*(path: string): bool {.noNimScript.} =
let fileName = lastPathPart(path)
result = len(fileName) >= 2 and fileName[0] == '.' and fileName != ".."
proc getCurrentProcessId*(): int {.noNimScript.} =
## return current process ID. See also ``osproc.processID(p: Process)``.
when defined(windows):
proc GetCurrentProcessId(): DWORD {.stdcall, dynlib: "kernel32",
importc: "GetCurrentProcessId".}
result = GetCurrentProcessId().int
else:
result = getpid()
{.pop.}
proc setLastModificationTime*(file: string, t: times.Time) {.noNimScript.} =

View File

@@ -155,7 +155,7 @@ proc running*(p: Process): bool {.rtl, extern: "nosp$1", tags: [].}
## Returns true iff the process `p` is still running. Returns immediately.
proc processID*(p: Process): int {.rtl, extern: "nosp$1".} =
## returns `p`'s process ID.
## returns `p`'s process ID. See also ``os.getCurrentProcessId()``.
return p.id
proc waitForExit*(p: Process, timeout: int = -1): int {.rtl,
@@ -1341,3 +1341,4 @@ proc execCmdEx*(command: string, options: set[ProcessOption] = {
result[1] = peekExitCode(p)
if result[1] != -1: break
close(p)