X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fcore%2Fmt%2FSemaphore.hpp;h=1b1e3f3ae573ecbde35ac94a2b9e94d55605cbb8;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=c1b62ee5cc0ceef375f33f6abb4bcf6d0e3b57dc;hpb=3e258840b15577cb8bda3cdedd0b9b88e16404b3;p=anna.git diff --git a/include/anna/core/mt/Semaphore.hpp b/include/anna/core/mt/Semaphore.hpp index c1b62ee..1b1e3f3 100644 --- a/include/anna/core/mt/Semaphore.hpp +++ b/include/anna/core/mt/Semaphore.hpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not Nothingness Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// https://bitbucket.org/testillano/anna -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // #ifndef anna_core_mt_Semaphore_hpp @@ -73,7 +45,7 @@ public: /** Destructor. */ - ~Semaphore(); + virtual ~Semaphore(); /** Notifica que desea acceder al recurso. Si se ha alcanzado la cuenta maxima de accesos @@ -82,25 +54,25 @@ public: Cada llamada a este metodo debe tener su correspondiente llamada a #signal. */ - void wait() throw(RuntimeException); + void wait() noexcept(false); /** Comprueba si se ha alcanzado la cuenta maxima de accesos simultaneos y devolvera \em true si todavia es posible acceder sin quedar bloqueado o \em false en otro caso. */ - bool tryWait() throw(RuntimeException); + bool tryWait() noexcept(false); /** Decrementa la cuenta de utilizacion del recurso, con lo que algunos de los threads que puede haber esperando se desbloqueara. */ - void signal() throw(RuntimeException); + void signal() noexcept(false); /** Devuelve una cadena con informacion relevante de esta instancia. \return Una cadena con informacion relevante de esta instancia. */ - virtual std::string asString() const throw(); + virtual std::string asString() const ; protected: /** @@ -109,7 +81,7 @@ protected: Es muy aconsejable delegar las llamadas a estos metodos en una instancia Guard. \return Siempre devuelve \em true; */ - void lock() throw(RuntimeException) { wait(); } + void lock() noexcept(false) { wait(); } /** Indica el final del acceso seguro iniciado al invocar #lock. @@ -117,7 +89,7 @@ protected: Es muy aconsejable delegar las llamadas a estos metodos en una instancia Guard. \return Siempre devuelve \em true; */ - void unlock() throw() { signal(); } + void unlock() { signal(); } private: sem_t a_id;