Vault  4.1
vsemaphore.cpp
Go to the documentation of this file.
00001 /*
00002 Copyright c1997-2014 Trygve Isaacson. All rights reserved.
00003 This file is part of the Code Vault version 4.1
00004 http://www.bombaydigital.com/
00005 License: MIT. See LICENSE.md in the Vault top level directory.
00006 */
00007 
00010 #include "vsemaphore.h"
00011 
00012 #include "vexception.h"
00013 #include "vmutex.h"
00014 
00015 VSemaphore::VSemaphore()
00016     : mSemaphore()
00017     {
00018 
00019     if (! VSemaphore::semaphoreInit(&mSemaphore)) {
00020         throw VStackTraceException("VSemaphore::VSemaphore unable to initialize semaphore.");
00021     }
00022 }
00023 
00024 VSemaphore::~VSemaphore() {
00025     (void) VSemaphore::semaphoreDestroy(&mSemaphore);
00026 }
00027 
00028 void VSemaphore::wait(VMutex* ownedMutex, const VDuration& timeoutInterval) {
00029     if (! VSemaphore::semaphoreWait(&mSemaphore, ownedMutex->getMutex(), timeoutInterval)) {
00030         throw VStackTraceException("VSemaphore::wait unable to wait on semaphore.");
00031     }
00032 }
00033 
00034 void VSemaphore::signal() {
00035     if (! VSemaphore::semaphoreSignal(&mSemaphore)) {
00036         throw VStackTraceException("VSemaphore::signal unable to signal semaphore.");
00037     }
00038 }
00039 

Copyright ©1997-2014 Trygve Isaacson. All rights reserved. This documentation was generated with Doxygen.