2 EIBD eib bus access and management daemon
3 Copyright (C) 2005-2009 Martin Koegler <mkoegler@auto.tuwien.ac.at>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 /** interface for a class started by a thread */
31 /** pointer to an thread entry point in Runable
32 * the thread should exit, if stopcond can be deceremented
34 typedef void (Runable::*THREADENTRY
) (pth_sem_t
* stopcond
);
36 /** implements a Thread */
41 /** C entry point for the threads */
42 static void *ThreadWrapper (void *arg
);
50 pth_sem_t should_stop
;
55 /** main function of the thread
56 * @param stop if stop can be decemented, the routine should exit
58 virtual void Run (pth_sem_t
* stop
);
61 * if o and t are not present, Run is runned, which has to be replaced
62 * @param o Object to run
63 * @param t Entry point
65 Thread (int Priority
= PTH_PRIO_STD
, Runable
* o
= 0, THREADENTRY t
= 0);
68 /** starts the thread*/
70 /** stops the thread, if it is running */
72 /** stops the thread and delete it asynchronous */