ntdll: Store the PEB lock pointer in the PEB.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Alexandre Julliard 2017-08-31 10:01:04 +02:00
parent 844b57e4d8
commit b31583770f
2 changed files with 12 additions and 11 deletions

View File

@ -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 );
}
/******************************************************************************

View File

@ -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 = &params;
peb->TlsBitmap = &tls_bitmap;
peb->TlsExpansionBitmap = &tls_expansion_bitmap;