mariadb/innobase/include/os0sync.ic

57 lines
1.2 KiB
Text
Raw Normal View History

2001-02-17 14:19:19 +02:00
/******************************************************
The interface to the operating system synchronization primitives.
(c) 1995 Innobase Oy
Created 9/6/1995 Heikki Tuuri
*******************************************************/
#ifdef __WIN__
#include <winbase.h>
#endif
#ifndef _WIN32
/**************************************************************
Acquires ownership of a fast mutex. */
UNIV_INLINE
ulint
os_fast_mutex_trylock(
/*==================*/
/* out: 0 if success, != 0 if
was reserved by another
thread */
os_fast_mutex_t* fast_mutex) /* in: mutex to acquire */
{
#ifdef __WIN__
int ret;
ut0ut.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes mem0pool.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0file.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0shm.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0sync.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0thread.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes page0page.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes que0que.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes row0ins.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes row0mysql.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes row0sel.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes row0upd.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes row0vers.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes srv0srv.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes srv0start.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes sync0arr.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes sync0rw.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes sync0sync.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes trx0rec.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes trx0trx.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes srv0srv.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes sync0rw.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes sync0sync.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes ut0dbg.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes lock0lock.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes log0log.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes log0recv.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes ibuf0ibuf.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes buf0buf.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes buf0buf.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes hash0hash.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes mach0data.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes mem0mem.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes mem0pool.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes mtr0mtr.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0file.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0sync.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0sync.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes os0thread.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes univ.i Fixes for 64-bit Linux, bug fixes, compiler warning fixes row0mysql.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes com0shm.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes data0data.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes data0type.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes dict0crea.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes dict0dict.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes fil0fil.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes fsp0fsp.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes fut0lst.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes btr0sea.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes buf0buf.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes buf0flu.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes btr0btr.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes btr0cur.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
2001-03-02 17:33:11 +02:00
/* TODO: TryEnterCriticalSection is probably not found from
2001-02-17 14:19:19 +02:00
NT versions < 4! */
ret = TryEnterCriticalSection(fast_mutex);
if (ret) {
return(0);
}
return(1);
#else
return((ulint) pthread_mutex_trylock(fast_mutex));
#endif
}
/**************************************************************
Releases ownership of a fast mutex. */
UNIV_INLINE
void
os_fast_mutex_unlock(
/*=================*/
os_fast_mutex_t* fast_mutex) /* in: mutex to release */
{
#ifdef __WIN__
LeaveCriticalSection(fast_mutex);
#else
pthread_mutex_unlock(fast_mutex);
#endif
}
#endif