From 61e0705a949dee7e2fff753bbb5cbd78ef54febe Mon Sep 17 00:00:00 2001 From: John Emmas Date: Tue, 9 Sep 2014 12:03:52 +0100 Subject: [PATCH] Re-introduce our pthread macros (after fixing an earlier typo) these are so we can differentiate between 'libpthread' and 'libpthread-win32' (whose implementation is subtlely - though annoyingly! - different) --- .../wavesapi/miscutils/pthread_utils.h | 38 +++++++++++++++++++ libs/pbd/pbd/pthread_utils.h | 15 ++++++++ 2 files changed, 53 insertions(+) create mode 100644 libs/backends/wavesaudio/wavesapi/miscutils/pthread_utils.h diff --git a/libs/backends/wavesaudio/wavesapi/miscutils/pthread_utils.h b/libs/backends/wavesaudio/wavesapi/miscutils/pthread_utils.h new file mode 100644 index 0000000000..e5202ece7e --- /dev/null +++ b/libs/backends/wavesaudio/wavesapi/miscutils/pthread_utils.h @@ -0,0 +1,38 @@ +/* + Copyright (C) 2014 John Emmas + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __waves_pthread_utils__ +#define __waves_pthread_utils__ + +/* Accommodate thread setting (and testing) for both + * 'libpthread' and 'libpthread_win32' (whose implementations + * of 'pthread_t' are subtlely different) + */ +#ifndef PTHREAD_MACROS_DEFINED +#define PTHREAD_MACROS_DEFINED +#ifdef PTW32_VERSION /* pthread_win32 */ +#define mark_pthread_inactive(threadID) threadID.p=0 +#define is_pthread_active(threadID) threadID.p!=0 +#else /* normal pthread */ +#define mark_pthread_inactive(threadID) threadID=0 +#define is_pthread_active(threadID) threadID!=0 +#endif /* PTW32_VERSION */ + +#endif /* PTHREAD_MACROS_DEFINED */ +#endif /* __waves_pthread_utils__ */ diff --git a/libs/pbd/pbd/pthread_utils.h b/libs/pbd/pbd/pthread_utils.h index 37ce723715..007a97c9dc 100644 --- a/libs/pbd/pbd/pthread_utils.h +++ b/libs/pbd/pbd/pthread_utils.h @@ -20,6 +20,21 @@ #ifndef __pbd_pthread_utils__ #define __pbd_pthread_utils__ +/* Accommodate thread setting (and testing) for both + * 'libpthread' and 'libpthread_win32' (whose implementations + * of 'pthread_t' are subtlely different) + */ +#ifndef PTHREAD_MACROS_DEFINED +#define PTHREAD_MACROS_DEFINED +#ifdef PTW32_VERSION /* pthread_win32 */ +#define mark_pthread_inactive(threadID) threadID.p=0 +#define is_pthread_active(threadID) threadID.p!=0 +#else /* normal pthread */ +#define mark_pthread_inactive(threadID) threadID=0 +#define is_pthread_active(threadID) threadID!=0 +#endif /* PTW32_VERSION */ +#endif /* PTHREAD_MACROS_DEFINED */ + #ifdef COMPILER_MSVC #include #else