1 // 2 // anyRemote 3 // a wi-fi or bluetooth remote for your PC. 4 // 5 // Copyright (C) 2006-2016 Mikhail Fedotov <anyremote@mail.ru> 6 // 7 // This program is free software; you can redistribute it and/or modify 8 // it under the terms of the GNU General Public License as published by 9 // the Free Software Foundation; either version 3 of the License, or 10 // (at your option) any later version. 11 // 12 // This program is distributed in the hope that it will be useful, 13 // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 // GNU General Public License for more details. 16 // 17 // You should have received a copy of the GNU General Public License 18 // along with this program; if not, write to the Free Software 19 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 // 21 22 // 23 // Message queue related wrappers 24 // 25 26 #ifndef _THREAD_H_ 27 #define _THREAD_H_ 1 28 29 #ifdef USE_GLIB 30 31 #include "glib.h" 32 typedef GThreadFunc ThreadFunction; 33 34 #else 35 36 typedef void* (*ThreadFunction) (void* data); 37 38 #endif 39 40 enum ThreadID { 41 T_DISP = 0, 42 T_EXEC, 43 T_AVAHI, 44 T_MAX 45 }; 46 47 enum ThreadParam { 48 JOINABLE = 0, 49 DETACHED, 50 }; 51 52 void threadInit (void); 53 int threadNew (int id, ThreadFunction func, void* data, int joinable); 54 void threadJoin (int id); 55 void threadExit (int id); // terminates the current thread, call only from right place !! 56 int threadExists(int id); 57 58 #endif 59