SemaphoreImplWin32.cpp
Go to the documentation of this file.
00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
00002 
00003 // -- BEGIN LICENSE BLOCK ----------------------------------------------
00004 // This file is part of FZIs ic_workspace.
00005 //
00006 // This program is free software licensed under the LGPL
00007 // (GNU LESSER GENERAL PUBLIC LICENSE Version 3).
00008 // You can find a copy of this license in LICENSE folder in the top
00009 // directory of the source code.
00010 //
00011 // © Copyright 2016 FZI Forschungszentrum Informatik, Karlsruhe, Germany
00012 //
00013 // -- END LICENSE BLOCK ------------------------------------------------
00014 
00015 //----------------------------------------------------------------------
00021 //----------------------------------------------------------------------
00022 #include "SemaphoreImplWin32.h"
00023 
00024 namespace icl_core {
00025 namespace logging {
00026 
00027 SemaphoreImplWin32::SemaphoreImplWin32(size_t initial_value)
00028   : m_semaphore(NULL)
00029 {
00030   m_semaphore = CreateSemaphore(NULL, LONG(initial_value), LONG_MAX, NULL);
00031 }
00032 
00033 SemaphoreImplWin32::~SemaphoreImplWin32()
00034 {
00035   CloseHandle(m_semaphore);
00036 }
00037 
00038 void SemaphoreImplWin32::post()
00039 {
00040   ReleaseSemaphore(m_semaphore, 1, NULL);
00041 }
00042 
00043 bool SemaphoreImplWin32::wait()
00044 {
00045   DWORD res = WaitForSingleObject(m_semaphore, INFINITE);
00046   return res == WAIT_OBJECT_0;
00047 }
00048 
00049 }
00050 }


fzi_icl_core
Author(s):
autogenerated on Thu Jun 6 2019 20:22:24