зеркало из https://github.com/github/ruby.git
* win32/win32.c (getppid): typo. [ruby-dev:36202]
* process.c (get_ppid): mention the return value on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
1625494feb
Коммит
c27baaa090
|
@ -1,3 +1,9 @@
|
|||
Mon Sep 8 18:13:20 2008 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* win32/win32.c (getppid): typo. [ruby-dev:36202]
|
||||
|
||||
* process.c (get_ppid): mention the return value on Windows.
|
||||
|
||||
Mon Sep 8 18:15:59 2008 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* tool/transcode-tblgen.rb (ArrayCode): less string substitutions.
|
||||
|
|
|
@ -162,8 +162,8 @@ get_pid(void)
|
|||
* call-seq:
|
||||
* Process.ppid => fixnum
|
||||
*
|
||||
* Returns the process id of the parent of this process. Always
|
||||
* returns 0 on NT. Not available on all platforms.
|
||||
* Returns the process id of the parent of this process. Returns
|
||||
* untrustworthy value on Win32/64. Not available on all platforms.
|
||||
*
|
||||
* puts "I am #{Process.pid}"
|
||||
* Process.fork { puts "Dad is #{Process.ppid}" }
|
||||
|
|
|
@ -3965,21 +3965,21 @@ rb_w32_getppid(void)
|
|||
HANDLE hNtDll = GetModuleHandle("ntdll.dll");
|
||||
if (hNtDll) {
|
||||
pNtQueryInformationProcess = (long (WINAPI *)(HANDLE, int, void *, ULONG, ULONG *))GetProcAddress(hNtDll, "NtQueryInformationProcess");
|
||||
if (pNtQueryInformationProcess) {
|
||||
struct {
|
||||
long ExitStatus;
|
||||
void* PebBaseAddress;
|
||||
ULONG AffinityMask;
|
||||
ULONG BasePriority;
|
||||
ULONG UniqueProcessId;
|
||||
ULONG ParentProcessId;
|
||||
} pbi;
|
||||
ULONG len;
|
||||
long ret = pNtQueryInformationProcess(GetCurrentProcess(), 0, &pbi, sizeof(pbi), &len);
|
||||
if (!ret) {
|
||||
ppid = pbi.ParentProcessId;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pNtQueryInformationProcess) {
|
||||
struct {
|
||||
long ExitStatus;
|
||||
void* PebBaseAddress;
|
||||
ULONG AffinityMask;
|
||||
ULONG BasePriority;
|
||||
ULONG UniqueProcessId;
|
||||
ULONG ParentProcessId;
|
||||
} pbi;
|
||||
ULONG len;
|
||||
long ret = pNtQueryInformationProcess(GetCurrentProcess(), 0, &pbi, sizeof(pbi), &len);
|
||||
if (!ret) {
|
||||
ppid = pbi.ParentProcessId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче