forked from Mirrors/wine-wine
ntdll: Store the PEB lock pointer in the PEB.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>oldstable
parent
844b57e4d8
commit
b31583770f
|
@ -49,15 +49,6 @@
|
|||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
|
||||
|
||||
static RTL_CRITICAL_SECTION peb_lock;
|
||||
static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
|
||||
{
|
||||
0, 0, &peb_lock,
|
||||
{ &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList },
|
||||
0, 0, { (DWORD_PTR)(__FILE__ ": peb_lock") }
|
||||
};
|
||||
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
|
||||
|
||||
#ifdef __i386__
|
||||
#define DEFINE_FASTCALL4_ENTRYPOINT( name ) \
|
||||
__ASM_STDCALL_FUNC( name, 16, \
|
||||
|
@ -380,7 +371,7 @@ NTSTATUS WINAPI vDbgPrintExWithPrefix( LPCSTR prefix, ULONG id, ULONG level, LPC
|
|||
*/
|
||||
VOID WINAPI RtlAcquirePebLock(void)
|
||||
{
|
||||
RtlEnterCriticalSection( &peb_lock );
|
||||
RtlEnterCriticalSection( NtCurrentTeb()->Peb->FastPebLock );
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -388,7 +379,7 @@ VOID WINAPI RtlAcquirePebLock(void)
|
|||
*/
|
||||
VOID WINAPI RtlReleasePebLock(void)
|
||||
{
|
||||
RtlLeaveCriticalSection( &peb_lock );
|
||||
RtlLeaveCriticalSection( NtCurrentTeb()->Peb->FastPebLock );
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
|
|
@ -69,6 +69,15 @@ static RTL_BITMAP tls_expansion_bitmap;
|
|||
static RTL_BITMAP fls_bitmap;
|
||||
static int nb_threads = 1;
|
||||
|
||||
static RTL_CRITICAL_SECTION peb_lock;
|
||||
static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
|
||||
{
|
||||
0, 0, &peb_lock,
|
||||
{ &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList },
|
||||
0, 0, { (DWORD_PTR)(__FILE__ ": peb_lock") }
|
||||
};
|
||||
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
|
||||
|
||||
/***********************************************************************
|
||||
* get_unicode_string
|
||||
*
|
||||
|
@ -292,6 +301,7 @@ HANDLE thread_init(void)
|
|||
MEM_COMMIT | MEM_TOP_DOWN, PAGE_READWRITE );
|
||||
peb = addr;
|
||||
|
||||
peb->FastPebLock = &peb_lock;
|
||||
peb->ProcessParameters = ¶ms;
|
||||
peb->TlsBitmap = &tls_bitmap;
|
||||
peb->TlsExpansionBitmap = &tls_expansion_bitmap;
|
||||
|
|
Loading…
Reference in New Issue