ntdll: Move suspending a thread on startup back to the platform-specific files.
This partially reverts f64d2688d2
.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a83532d8dd
commit
9d911a5736
|
@ -2963,14 +2963,12 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
|
|||
* Attach to all the loaded dlls.
|
||||
* If this is the first time, perform the full process initialization.
|
||||
*/
|
||||
NTSTATUS attach_dlls( CONTEXT *context, BOOL suspend )
|
||||
NTSTATUS attach_dlls( CONTEXT *context )
|
||||
{
|
||||
NTSTATUS status;
|
||||
WINE_MODREF *wm;
|
||||
LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
|
||||
|
||||
if (suspend) wait_suspend( context );
|
||||
|
||||
pthread_sigmask( SIG_UNBLOCK, &server_block_set, NULL );
|
||||
|
||||
if (process_detaching) return STATUS_SUCCESS;
|
||||
|
|
|
@ -106,7 +106,7 @@ extern NTSTATUS validate_open_object_attributes( const OBJECT_ATTRIBUTES *attr )
|
|||
|
||||
/* module handling */
|
||||
extern LIST_ENTRY tls_links DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS attach_dlls( CONTEXT *context, BOOL suspend ) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS attach_dlls( CONTEXT *context ) DECLSPEC_HIDDEN;
|
||||
extern FARPROC RELAY_GetProcAddress( HMODULE module, const IMAGE_EXPORT_DIRECTORY *exports,
|
||||
DWORD exp_size, FARPROC proc, DWORD ordinal, const WCHAR *user ) DECLSPEC_HIDDEN;
|
||||
extern FARPROC SNOOP_GetProcAddress( HMODULE hmod, const IMAGE_EXPORT_DIRECTORY *exports, DWORD exp_size,
|
||||
|
|
|
@ -1286,7 +1286,7 @@ PCONTEXT DECLSPEC_HIDDEN attach_thread( LPTHREAD_START_ROUTINE entry, void *arg,
|
|||
init_thread_context( ctx, entry, arg, relay );
|
||||
}
|
||||
ctx->ContextFlags = CONTEXT_FULL;
|
||||
attach_dlls( ctx, FALSE );
|
||||
attach_dlls( ctx );
|
||||
return ctx;
|
||||
}
|
||||
|
||||
|
|
|
@ -1016,7 +1016,8 @@ static void thread_startup( void *param )
|
|||
context.Sp = (DWORD_PTR)NtCurrentTeb()->Tib.StackBase;
|
||||
context.Pc = (DWORD_PTR)info->start;
|
||||
|
||||
attach_dlls( &context, info->suspend );
|
||||
if (info->suspend) wait_suspend( &context );
|
||||
attach_dlls( &context );
|
||||
|
||||
((thread_start_func)context.Pc)( (LPTHREAD_START_ROUTINE)context.u.s.X0, (void *)context.u.s.X1 );
|
||||
}
|
||||
|
|
|
@ -2996,7 +2996,7 @@ PCONTEXT DECLSPEC_HIDDEN attach_thread( LPTHREAD_START_ROUTINE entry, void *arg,
|
|||
init_thread_context( ctx, entry, arg, relay );
|
||||
}
|
||||
ctx->ContextFlags = CONTEXT_FULL;
|
||||
attach_dlls( ctx, FALSE );
|
||||
attach_dlls( ctx );
|
||||
return ctx;
|
||||
}
|
||||
|
||||
|
|
|
@ -1178,7 +1178,8 @@ static void thread_startup( void *param )
|
|||
context.Gpr4 = (DWORD)info->arg;
|
||||
context.Iar = (DWORD)info->start;
|
||||
|
||||
attach_dlls( &context, info->suspend );
|
||||
if (info->suspend) wait_suspend( &context );
|
||||
attach_dlls( &context );
|
||||
|
||||
((thread_start_func)context.Iar)( (LPTHREAD_START_ROUTINE)context.Gpr3, (void *)context.Gpr4 );
|
||||
}
|
||||
|
|
|
@ -4169,7 +4169,7 @@ PCONTEXT DECLSPEC_HIDDEN attach_thread( LPTHREAD_START_ROUTINE entry, void *arg,
|
|||
init_thread_context( ctx, entry, arg, relay );
|
||||
}
|
||||
ctx->ContextFlags = CONTEXT_FULL;
|
||||
attach_dlls( ctx, FALSE );
|
||||
attach_dlls( ctx );
|
||||
return ctx;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue