server: Mark the process as disconnected from desktop/winstation before closing its handles.

Dmitry Timoshkov dmitry at baikal.ru
Mon Jun 3 04:15:15 CDT 2013


This is another attempt to fix the TerminateProcess failure.
---
 dlls/kernel32/tests/process.c | 1 -
 server/process.c              | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index 64e333e..9d3e983 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -1957,7 +1957,6 @@ static void test_TerminateProcess(void)
 
     SetLastError(0xdeadbeef);
     ret = TerminateProcess(pi.hProcess, 0);
-todo_wine
     ok(ret, "TerminateProcess error %u\n", GetLastError());
 
     CloseHandle(pi.hProcess);
diff --git a/server/process.c b/server/process.c
index 61d9d17..f1046c0 100644
--- a/server/process.c
+++ b/server/process.c
@@ -628,9 +628,9 @@ static void process_killed( struct process *process )
     assert( list_empty( &process->thread_list ));
     process->end_time = current_time;
     if (!process->is_system) close_process_desktop( process );
-    close_process_handles( process );
     process->winstation = 0;
     process->desktop = 0;
+    close_process_handles( process );
     if (process->idle_event)
     {
         release_object( process->idle_event );
-- 
1.8.3




More information about the wine-patches mailing list