Alexandre Julliard : ntdll: Only grab the loader lock once we actually call external functions.

Alexandre Julliard julliard at winehq.org
Mon Mar 3 06:21:19 CST 2008


Module: wine
Branch: master
Commit: 254c17f841748993d24e4b988cd7c03c78725714
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=254c17f841748993d24e4b988cd7c03c78725714

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat Mar  1 13:30:34 2008 +0100

ntdll: Only grab the loader lock once we actually call external functions.

---

 dlls/ntdll/loader.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 8ce5a62..11447eb 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -2340,8 +2340,6 @@ void WINAPI LdrInitializeThunk( ULONG unknown1, ULONG unknown2, ULONG unknown3,
     status = server_init_process_done();
     if (status != STATUS_SUCCESS) goto error;
 
-    RtlEnterCriticalSection( &loader_section );
-
     actctx_init();
     load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
     if ((status = fixup_imports( wm, load_path )) != STATUS_SUCCESS) goto error;
@@ -2350,6 +2348,8 @@ void WINAPI LdrInitializeThunk( ULONG unknown1, ULONG unknown2, ULONG unknown3,
 
     pthread_functions.sigprocmask( SIG_UNBLOCK, &server_block_set, NULL );
 
+    RtlEnterCriticalSection( &loader_section );
+
     if ((status = process_attach( wm, (LPVOID)1 )) != STATUS_SUCCESS)
     {
         if (last_failed_modref)




More information about the wine-cvs mailing list