~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysys/my_pthread.h

  • Committer: Brian Aker
  • Date: 2008-12-05 19:17:37 UTC
  • Revision ID: brian@tangent.org-20081205191737-pp8u84pdz6dcp182
Part removal of my_pthread.h

Show diffs side-by-side

added added

removed removed

Lines of Context:
71
71
int my_sigwait(const sigset_t *set,int *sig);
72
72
#endif
73
73
 
74
 
#ifdef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT
75
 
#define pthread_mutex_init(a,b) my_pthread_mutex_init((a),(b))
76
 
extern int my_pthread_mutex_init(pthread_mutex_t *mp,
77
 
                                 const pthread_mutexattr_t *attr);
78
 
#define pthread_cond_init(a,b) my_pthread_cond_init((a),(b))
79
 
extern int my_pthread_cond_init(pthread_cond_t *mp,
80
 
                                const pthread_condattr_t *attr);
81
 
#endif /* HAVE_NONPOSIX_PTHREAD_MUTEX_INIT */
82
 
 
83
74
#if defined(HAVE_SIGTHREADMASK) && !defined(HAVE_PTHREAD_SIGMASK)
84
75
#define pthread_sigmask(A,B,C) sigthreadmask((A),(B),(C))
85
76
#endif
304
295
#undef HAVE_RWLOCK_T
305
296
#endif
306
297
 
307
 
#if defined(USE_MUTEX_INSTEAD_OF_RW_LOCKS)
308
 
/* use these defs for simple mutex locking */
309
 
#define rw_lock_t pthread_mutex_t
310
 
#define my_rwlock_init(A,B) pthread_mutex_init((A),(B))
311
 
#define rw_rdlock(A) pthread_mutex_lock((A))
312
 
#define rw_wrlock(A) pthread_mutex_lock((A))
313
 
#define rw_tryrdlock(A) pthread_mutex_trylock((A))
314
 
#define rw_trywrlock(A) pthread_mutex_trylock((A))
315
 
#define rw_unlock(A) pthread_mutex_unlock((A))
316
 
#define rwlock_destroy(A) pthread_mutex_destroy((A))
317
 
#elif defined(HAVE_PTHREAD_RWLOCK_RDLOCK)
318
 
#define rw_lock_t pthread_rwlock_t
319
 
#define my_rwlock_init(A,B) pthread_rwlock_init((A),(B))
320
 
#define rw_rdlock(A) pthread_rwlock_rdlock(A)
321
 
#define rw_wrlock(A) pthread_rwlock_wrlock(A)
322
 
#define rw_tryrdlock(A) pthread_rwlock_tryrdlock((A))
323
 
#define rw_trywrlock(A) pthread_rwlock_trywrlock((A))
324
 
#define rw_unlock(A) pthread_rwlock_unlock(A)
325
 
#define rwlock_destroy(A) pthread_rwlock_destroy(A)
326
 
#elif defined(HAVE_RWLOCK_INIT)
327
 
#ifdef HAVE_RWLOCK_T                            /* For example Solaris 2.6-> */
328
 
#define rw_lock_t rwlock_t
329
 
#endif
330
 
#define my_rwlock_init(A,B) rwlock_init((A),USYNC_THREAD,0)
331
 
#else
332
 
/* Use our own version of read/write locks */
333
 
typedef struct _my_rw_lock_t {
334
 
        pthread_mutex_t lock;           /* lock for structure           */
335
 
        pthread_cond_t  readers;        /* waiting readers              */
336
 
        pthread_cond_t  writers;        /* waiting writers              */
337
 
        int             state;          /* -1:writer,0:free,>0:readers  */
338
 
        int             waiters;        /* number of waiting writers    */
339
 
} my_rw_lock_t;
340
 
 
341
 
#define rw_lock_t my_rw_lock_t
342
 
#define rw_rdlock(A) my_rw_rdlock((A))
343
 
#define rw_wrlock(A) my_rw_wrlock((A))
344
 
#define rw_tryrdlock(A) my_rw_tryrdlock((A))
345
 
#define rw_trywrlock(A) my_rw_trywrlock((A))
346
 
#define rw_unlock(A) my_rw_unlock((A))
347
 
#define rwlock_destroy(A) my_rwlock_destroy((A))
348
 
 
349
 
extern int my_rwlock_init(my_rw_lock_t *, void *);
350
 
extern int my_rwlock_destroy(my_rw_lock_t *);
351
 
extern int my_rw_rdlock(my_rw_lock_t *);
352
 
extern int my_rw_wrlock(my_rw_lock_t *);
353
 
extern int my_rw_unlock(my_rw_lock_t *);
354
 
extern int my_rw_tryrdlock(my_rw_lock_t *);
355
 
extern int my_rw_trywrlock(my_rw_lock_t *);
356
 
#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */
357
 
 
358
298
#ifndef HAVE_THR_SETCONCURRENCY
359
299
#define thr_setconcurrency(A) pthread_dummy(0)
360
300
#endif