Changeset 6060 for trunk/src/kernel32/hmmutex.cpp
- Timestamp:
- Jun 21, 2001, 11:07:54 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmmutex.cpp
r6049 r6060 1 /* $Id: hmmutex.cpp,v 1. 4 2001-06-19 10:50:25sandervl Exp $ */1 /* $Id: hmmutex.cpp,v 1.5 2001-06-21 21:07:53 sandervl Exp $ */ 2 2 3 3 /* … … 31 31 #ifdef USE_OS2SEMAPHORES 32 32 #define INCL_DOSSEMAPHORES 33 #define INCL_DOSERRORS 33 34 #include <os2wrap.h> 34 35 #include <win32type.h> … … 273 274 #endif 274 275 276 277 #ifdef USE_OS2SEMAPHORES 278 /***************************************************************************** 279 * Name : DWORD HMDeviceOpen32Class::WaitForSingleObject 280 * Purpose : object synchronization 281 * Parameters: PHMHANDLEDATA pHMHandleData 282 * DWORD dwTimeout 283 * Variables : 284 * Result : API returncode 285 * Remark : 286 * Status : 287 * 288 * Author : Patrick Haller [Wed, 1999/06/17 20:44] 289 *****************************************************************************/ 290 291 DWORD HMDeviceMutexClass::WaitForSingleObject(PHMHANDLEDATA pHMHandleData, 292 DWORD dwTimeout) 293 { 294 DWORD rc; 295 296 dprintf2(("KERNEL32: HMDeviceMutexClass::WaitForSingleObject(%08xh %08xh)", 297 pHMHandleData->hHMHandle, dwTimeout)); 298 299 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 300 { 301 dprintf(("ERROR: Access denied!!")); 302 SetLastError(ERROR_ACCESS_DENIED_W); 303 return FALSE; 304 } 305 306 rc = DosRequestMutexSem(pHMHandleData->hHMHandle, dwTimeout); 307 if(rc && rc != ERROR_INTERRUPT && rc != ERROR_TIMEOUT && rc != ERROR_SEM_OWNER_DIED) { 308 dprintf(("DosWaitEventSem %x failed with rc %d", pHMHandleData->hHMHandle, rc)); 309 SetLastError(error2WinError(rc)); 310 return WAIT_FAILED_W; 311 } 312 SetLastError(ERROR_SUCCESS_W); 313 if(rc == ERROR_INTERRUPT || rc == ERROR_SEM_OWNER_DIED) { 314 return WAIT_ABANDONED_W; 315 } 316 else 317 if(rc == ERROR_TIMEOUT) { 318 return WAIT_TIMEOUT_W; 319 } 320 return WAIT_OBJECT_0_W; 321 } 322 #endif 323 324 #ifdef USE_OS2SEMAPHORES 325 /***************************************************************************** 326 * Name : DWORD HMDeviceOpen32Class::WaitForSingleObjectEx 327 * Purpose : object synchronization 328 * Parameters: PHMHANDLEDATA pHMHandleData 329 * DWORD dwTimeout 330 * BOOL fAlertable 331 * Variables : 332 * Result : API returncode 333 * Remark : 334 * Status : 335 * 336 * Author : Patrick Haller [Wed, 1999/06/17 20:44] 337 *****************************************************************************/ 338 339 DWORD HMDeviceMutexClass::WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData, 340 DWORD dwTimeout, 341 BOOL fAlertable) 342 { 343 dprintf2(("KERNEL32: HMDeviceMutexClass::WaitForSingleObjectEx(%08xh,%08h,%08xh) not implemented correctly.\n", 344 pHMHandleData->hHMHandle, dwTimeout, fAlertable)); 345 346 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 347 { 348 dprintf(("ERROR: Access denied!!")); 349 SetLastError(ERROR_ACCESS_DENIED_W); 350 return WAIT_FAILED_W; 351 } 352 353 return WaitForSingleObject(pHMHandleData, dwTimeout); 354 } 355 #endif 356 357 #ifdef USE_OS2SEMAPHORES 358 /***************************************************************************** 359 * Name : BOOL HMDeviceMutexClass::MsgWaitForMultipleObjects 360 * Purpose : 361 * Variables : 362 * Result : 363 * Remark : 364 * Status : 365 * 366 * Author : SvL 367 *****************************************************************************/ 368 DWORD HMDeviceMutexClass::MsgWaitForMultipleObjects(PHMHANDLEDATA pHMHandleData, 369 DWORD nCount, 370 PHANDLE pHandles, 371 BOOL fWaitAll, 372 DWORD dwMilliseconds, 373 DWORD dwWakeMask) 374 { 375 dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::MsgWaitForMultipleObjects %08x %d %x %d %d %x", 376 pHMHandleData->hHMHandle, nCount, pHandles, fWaitAll, dwMilliseconds, dwWakeMask)); 377 378 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 379 { 380 dprintf(("ERROR: Access denied!!")); 381 SetLastError(ERROR_ACCESS_DENIED_W); 382 return WAIT_FAILED_W; 383 } 384 return WAIT_FAILED_W; 385 } 386 #endif 387 388 #ifdef USE_OS2SEMAPHORES 389 /***************************************************************************** 390 * Name : BOOL HMDeviceMutexClass::WaitForMultipleObjects 391 * Purpose : 392 * Variables : 393 * Result : 394 * Remark : 395 * Status : 396 * 397 * Author : SvL 398 *****************************************************************************/ 399 DWORD HMDeviceMutexClass::WaitForMultipleObjects(PHMHANDLEDATA pHMHandleData, 400 DWORD cObjects, 401 PHANDLE lphObjects, 402 BOOL fWaitAll, 403 DWORD dwTimeout) 404 { 405 dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::WaitForMultipleObjects %08x %d %x %d %x", 406 pHMHandleData->hHMHandle, cObjects, lphObjects, fWaitAll, dwTimeout)); 407 408 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 409 { 410 dprintf(("ERROR: Access denied!!")); 411 SetLastError(ERROR_ACCESS_DENIED_W); 412 return WAIT_FAILED_W; 413 } 414 return WAIT_FAILED_W; 415 } 416 #endif 417 275 418 /***************************************************************************** 276 419 * Name : HMReleaseMutex
Note:
See TracChangeset
for help on using the changeset viewer.