X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fcore%2Fmt%2FThread.hpp;h=f90f70ba36de0d4b8bcd9ff65f9c4e61f0a42d81;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=ea3e0424db0998c3e6d57fa413c451ba32552aa7;hpb=39033fd99e58e994a5e98c1060dcc79e0d81f9c9;p=anna.git diff --git a/include/anna/core/mt/Thread.hpp b/include/anna/core/mt/Thread.hpp index ea3e042..f90f70b 100644 --- a/include/anna/core/mt/Thread.hpp +++ b/include/anna/core/mt/Thread.hpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not Nothingness Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// http://redmine.teslayout.com/projects/anna-suite -// -// 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 the copyright holder 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_Thread_hpp @@ -80,26 +52,26 @@ public: /** @return El identificador de este thread a nivel de sistema operativo. */ - pthread_t getId() const throw() { return a_id; } + pthread_t getId() const { return a_id; } /** * Establece los flags que configuran el comportamiento de este thread. * \param flag Una combinación de los valores definidos por Thread::Flags::_v. * \warning Los flags deben establecerse antes de invocar al método #start. */ - void setFlags(const int flags) throw() { a_flags = flags; } + void setFlags(const int flags) { a_flags = flags; } /** * Devuelve el indicador que informa sobre si se podría aplicar el método #join sobre este thread */ - bool isJoinable() const throw() { return (a_flags & Flag::Joinable) != 0; } + bool isJoinable() const { return (a_flags & Flag::Joinable) != 0; } /** Devuelve el estado de ejecucion de �te thread. \return El estado de ejecucion de �te thread \em true si est�en ejecucion o \em false en otro caso. */ - bool isRunning() const throw() { return (a_id != (pthread_t) - 1); } + bool isRunning() const { return (a_id != (pthread_t) - 1); } // Metodos /** @@ -110,13 +82,13 @@ public: @param runnable Instancia del objeto que va a ser ejecutado en el nuevo thread. */ - void start(Runnable& runnable) throw(RuntimeException); + void start(Runnable& runnable) noexcept(false); /** Introduce un nuevo punto de cancelacin. Esto slo sera necesario en caso de que el proceso que implementa nuestro thread no haga ninguna llamada al sistema. */ - void testCancel() throw() { pthread_testcancel(); } + void testCancel() { pthread_testcancel(); } /** Suspende la ejecución del thread que invoca a este método hasta que termine la ejecución @@ -141,13 +113,13 @@ public: Con esto desde el thread C hemos lanzado los threads A y B; C quedar�bloqueado a la espera de que termine la ejecucion del thread B y una vez hecho esto termina la ejecucion del thread A. */ - void join() throw(RuntimeException); + void join() noexcept(false); /** Devuelve una cadena con la informacin referente a �te thread. \return Una cadena con la informacin referente a �te thread. */ - virtual std::string asString() const throw(); + virtual std::string asString() const ; private: struct Data {