Changeset 6060 for trunk/src/kernel32/hmevent.cpp
- Timestamp:
- Jun 21, 2001, 11:07:54 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmevent.cpp
r6049 r6060 1 /* $Id: hmevent.cpp,v 1. 5 2001-06-19 10:50:24sandervl Exp $ */1 /* $Id: hmevent.cpp,v 1.6 2001-06-21 21:07:53 sandervl Exp $ */ 2 2 3 3 /* … … 32 32 #ifdef USE_OS2SEMAPHORES 33 33 #define INCL_DOSSEMAPHORES 34 #define INCL_DOSERRORS 34 35 #include <os2wrap.h> 35 36 #include <win32type.h> … … 111 112 //unblocked and the app must manually reset the event semaphore 112 113 //Automatic reset -> only one waiting thread unblocked & state reset 113 rc = DosCreateEventSem(lpszEventName, &hev, (fManualReset) ? 0 : DCE_POSTONE, fInitialState);114 rc = DosCreateEventSem(lpszEventName, &hev, (fManualReset) ? 0 : (DCE_POSTONE|DCE_AUTORESET), fInitialState); 114 115 115 116 if(rc) { … … 292 293 #endif 293 294 295 #ifdef USE_OS2SEMAPHORES 296 /***************************************************************************** 297 * Name : DWORD HMDeviceEventClass::WaitForSingleObject 298 * Purpose : object synchronization 299 * Parameters: PHMHANDLEDATA pHMHandleData 300 * DWORD dwTimeout 301 * Variables : 302 * Result : API returncode 303 * Remark : 304 * Status : 305 * 306 * Author : SvL 307 *****************************************************************************/ 308 309 DWORD HMDeviceEventClass::WaitForSingleObject(PHMHANDLEDATA pHMHandleData, 310 DWORD dwTimeout) 311 { 312 DWORD rc; 313 314 dprintf2(("KERNEL32: HMDeviceEventClass::WaitForSingleObject(%08xh %08xh)", 315 pHMHandleData->hHMHandle, dwTimeout)); 316 317 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 318 { 319 dprintf(("ERROR: Access denied!!")); 320 SetLastError(ERROR_ACCESS_DENIED_W); 321 return WAIT_FAILED_W; 322 } 323 324 rc = DosWaitEventSem(pHMHandleData->hHMHandle, dwTimeout); 325 if(rc && rc != ERROR_INTERRUPT && rc != ERROR_TIMEOUT && rc != ERROR_SEM_OWNER_DIED) { 326 dprintf(("DosWaitEventSem %x failed with rc %d", pHMHandleData->hHMHandle, rc)); 327 SetLastError(error2WinError(rc)); 328 return WAIT_FAILED_W; 329 } 330 SetLastError(ERROR_SUCCESS_W); 331 if(rc == ERROR_INTERRUPT || rc == ERROR_SEM_OWNER_DIED) { 332 return WAIT_ABANDONED_W; 333 } 334 else 335 if(rc == ERROR_TIMEOUT) { 336 return WAIT_TIMEOUT_W; 337 } 338 return WAIT_OBJECT_0_W; 339 } 340 #endif 341 342 #ifdef USE_OS2SEMAPHORES 343 /***************************************************************************** 344 * Name : DWORD HMDeviceEventClass::WaitForSingleObjectEx 345 * Purpose : object synchronization 346 * Parameters: PHMHANDLEDATA pHMHandleData 347 * DWORD dwTimeout 348 * BOOL fAlertable 349 * Variables : 350 * Result : API returncode 351 * Remark : 352 * Status : 353 * 354 * Author : SvL 355 *****************************************************************************/ 356 357 DWORD HMDeviceEventClass::WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData, 358 DWORD dwTimeout, 359 BOOL fAlertable) 360 { 361 dprintf2(("KERNEL32: HMDeviceEventClass::WaitForSingleObjectEx(%08xh,%08h,%08xh) not implemented correctly.\n", 362 pHMHandleData->hHMHandle, dwTimeout, fAlertable)); 363 364 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 365 { 366 dprintf(("ERROR: Access denied!!")); 367 SetLastError(ERROR_ACCESS_DENIED_W); 368 return WAIT_FAILED_W; 369 } 370 371 return WaitForSingleObject(pHMHandleData, dwTimeout); 372 } 373 #endif 374 375 #ifdef USE_OS2SEMAPHORES 376 /***************************************************************************** 377 * Name : BOOL HMDeviceEventClass::MsgWaitForMultipleObjects 378 * Purpose : 379 * Variables : 380 * Result : 381 * Remark : 382 * Status : 383 * 384 * Author : SvL 385 *****************************************************************************/ 386 DWORD HMDeviceEventClass::MsgWaitForMultipleObjects(PHMHANDLEDATA pHMHandleData, 387 DWORD nCount, 388 PHANDLE pHandles, 389 BOOL fWaitAll, 390 DWORD dwMilliseconds, 391 DWORD dwWakeMask) 392 { 393 dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::MsgWaitForMultipleObjects %08x %d %x %d %d %x", 394 pHMHandleData->hHMHandle, nCount, pHandles, fWaitAll, dwMilliseconds, dwWakeMask)); 395 396 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 397 { 398 dprintf(("ERROR: Access denied!!")); 399 SetLastError(ERROR_ACCESS_DENIED_W); 400 return WAIT_FAILED_W; 401 } 402 403 return WAIT_FAILED_W; 404 } 405 #endif 406 407 #ifdef USE_OS2SEMAPHORES 408 /***************************************************************************** 409 * Name : BOOL HMDeviceHandler::WaitForMultipleObjects 410 * Purpose : 411 * Variables : 412 * Result : 413 * Remark : 414 * Status : 415 * 416 * Author : SvL 417 *****************************************************************************/ 418 DWORD HMDeviceEventClass::WaitForMultipleObjects(PHMHANDLEDATA pHMHandleData, 419 DWORD cObjects, 420 PHANDLE lphObjects, 421 BOOL fWaitAll, 422 DWORD dwTimeout) 423 { 424 dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::WaitForMultipleObjects %08x %d %x %d %x", 425 pHMHandleData->hHMHandle, cObjects, lphObjects, fWaitAll, dwTimeout)); 426 427 if(!(pHMHandleData->dwAccess & SYNCHRONIZE_W) ) 428 { 429 dprintf(("ERROR: Access denied!!")); 430 SetLastError(ERROR_ACCESS_DENIED_W); 431 return WAIT_FAILED_W; 432 } 433 434 return WAIT_FAILED_W; 435 } 436 #endif 437 294 438 /***************************************************************************** 295 439 * Name : HMSetEvent
Note:
See TracChangeset
for help on using the changeset viewer.