starfix: HoR fix!!! wave+team check fix+2 bos jalan...kurang LK nya + PR:lootannya...
[st4rcore.git] / dep / mysqllite / include / my_no_pthread.h
blob511fac407d589ab29dd588e85e28210dc1d9bd10
1 /* Copyright (C) 2000 MySQL AB
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; version 2 of the License.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License
13 along with this program; if not, write to the Free Software
14 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
17 #if !defined(_my_no_pthread_h) && !defined(THREAD)
18 #define _my_no_pthread_h
22 This block is to access some thread-related type definitions
23 even in builds which do not need thread functions,
24 as some variables (based on these types) are declared
25 even in non-threaded builds.
26 Case in point: 'mf_keycache.c'
28 #if defined(__WIN__)
29 #else /* Normal threads */
30 #include <pthread.h>
32 #endif /* defined(__WIN__) */
36 This undefs some pthread mutex locks when one isn't using threads
37 to make thread safe code, that should also work in single thread
38 environment, easier to use.
40 #define pthread_mutex_init(A,B)
41 #define pthread_mutex_lock(A)
42 #define pthread_mutex_unlock(A)
43 #define pthread_mutex_destroy(A)
44 #define my_rwlock_init(A,B)
45 #define rw_rdlock(A)
46 #define rw_wrlock(A)
47 #define rw_unlock(A)
48 #define rwlock_destroy(A)
50 typedef int my_pthread_once_t;
51 #define MY_PTHREAD_ONCE_INIT 0
52 #define MY_PTHREAD_ONCE_DONE 1
54 #define my_pthread_once(C,F) do { \
55 if (*(C) != MY_PTHREAD_ONCE_DONE) { F(); *(C)= MY_PTHREAD_ONCE_DONE; } \
56 } while(0)
58 #endif