Ignore:
Timestamp:
Mar 23, 2000, 8:24:26 PM (25 years ago)
Author:
sandervl
Message:

shared mutex fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/win32wndhandle.cpp

    r3127 r3207  
    1 /* $Id: win32wndhandle.cpp,v 1.6 2000-03-16 19:19:11 sandervl Exp $ */
     1/* $Id: win32wndhandle.cpp,v 1.7 2000-03-23 19:24:26 sandervl Exp $ */
    22/*
    33 * Win32 Handle Management Code for OS/2
     
    2525//******************************************************************************
    2626
     27//NOTE: This must be in the local data segment -> if a shared semaphore was
     28//      created by a different process, the handle returned by DosOpenMutexSem
     29//      will be returned in hGlobalTableMutex
     30HMTX hGlobalTableMutex = 0;
     31
    2732//Global DLL Data
    2833#pragma data_seg(_GLOBALDATA)
    2934ULONG  WindowHandleTable[MAX_WINDOW_HANDLES] = {0};
    30 VMutex tableMutex(TRUE);
     35VMutex tableMutex(VMUTEX_SHARED, &hGlobalTableMutex);
    3136ULONG  lowestFreeIndex = 0;
    3237#pragma data_seg()
     
    3641BOOL HwAllocateWindowHandle(HWND *hwnd, DWORD dwUserData)
    3742{
    38   tableMutex.enter();
     43  tableMutex.enter(VMUTEX_WAIT_FOREVER, &hGlobalTableMutex);
    3944  if(lowestFreeIndex == -1) {
    4045        //oops, out of handles
    4146        dprintf(("USER32: HwAllocateWindowHandle OUT OF WINDOW HANDLES!!"));
    42         tableMutex.leave();
     47        tableMutex.leave(&hGlobalTableMutex);
    4348        DebugInt3();
    4449        return FALSE;
     
    5762        }
    5863  }
    59   tableMutex.leave();
     64  tableMutex.leave(&hGlobalTableMutex);
    6065  return TRUE;
    6166}
     
    6671  hwnd &= WNDHANDLE_MAGIC_MASK;
    6772  if(hwnd < MAX_WINDOW_HANDLES) {
    68         tableMutex.enter();
     73        tableMutex.enter(VMUTEX_WAIT_FOREVER, &hGlobalTableMutex);
    6974        WindowHandleTable[hwnd] = 0;
    7075        if(lowestFreeIndex == -1 || hwnd < lowestFreeIndex)
    7176                lowestFreeIndex = hwnd;
    7277
    73         tableMutex.leave();
     78        tableMutex.leave(&hGlobalTableMutex);
    7479  }
    7580}
Note: See TracChangeset for help on using the changeset viewer.