windows: Fix process termination code.

The ctrl-c hack used before didn't actually seem to work.

No haskell libraries expose TerminateProcess. I tried just calling it via
FFI, but got segfaults, probably to do with the wacky process handle not
being managed correctly. Moving it all into one C function worked.

This was hell. The EvilLinker hack was just final icing on the cake.
We all know what the cake was made of.
This commit is contained in:
Joey Hess 2014-02-13 14:00:15 -04:00
parent 84083ecdd3
commit f11f7520b5
10 changed files with 58 additions and 24 deletions

10
Utility/winprocess.c Normal file
View file

@ -0,0 +1,10 @@
#include <windows.h>
void terminatepid (DWORD pid) {
HANDLE h;
h = OpenProcess(PROCESS_TERMINATE, 0, pid);
if (h != NULL) {
TerminateProcess(h, 1);
}
CloseHandle(h);
}