Merge pull request #1033 from jluce50/dev

Close thread handle after suspend/resume
This commit is contained in:
Luke 2015-03-03 21:13:59 -05:00
commit 7958d8b380

View File

@ -29,8 +29,11 @@ namespace MediaBrowser.ServerApplication.Native
static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId); static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId);
[DllImport("kernel32.dll")] [DllImport("kernel32.dll")]
static extern uint SuspendThread(IntPtr hThread); static extern uint SuspendThread(IntPtr hThread);
[DllImport("kernel32.dll")] [DllImport("kernel32.dll")]
static extern int ResumeThread(IntPtr hThread); static extern int ResumeThread(IntPtr hThread);
[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool CloseHandle(IntPtr hThread);
public static void Suspend(this Process process) public static void Suspend(this Process process)
{ {
@ -41,7 +44,8 @@ namespace MediaBrowser.ServerApplication.Native
{ {
break; break;
} }
SuspendThread(pOpenThread); SuspendThread(pOpenThread);
CloseHandle(pOpenThread);
} }
} }
public static void Resume(this Process process) public static void Resume(this Process process)
@ -52,8 +56,9 @@ namespace MediaBrowser.ServerApplication.Native
if (pOpenThread == IntPtr.Zero) if (pOpenThread == IntPtr.Zero)
{ {
break; break;
} }
ResumeThread(pOpenThread); ResumeThread(pOpenThread);
CloseHandle(pOpenThread);
} }
} }
public static void Print(this Process process) public static void Print(this Process process)