mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 22:12:30 +01:00
a3edc742b9
Merge InnoDB-3.23.52d innobase/btr/btr0sea.c: Merge InnoDB-3.23.52d innobase/buf/buf0buf.c: Merge InnoDB-3.23.52d innobase/buf/buf0lru.c: Merge InnoDB-3.23.52d innobase/include/buf0buf.h: Merge InnoDB-3.23.52d innobase/include/ha0ha.h: Merge InnoDB-3.23.52d innobase/include/log0log.h: Merge InnoDB-3.23.52d innobase/include/os0file.h: Merge InnoDB-3.23.52d innobase/include/os0thread.h: Merge InnoDB-3.23.52d innobase/include/ha0ha.ic: Merge InnoDB-3.23.52d innobase/include/os0sync.ic: Merge InnoDB-3.23.52d innobase/include/srv0start.h: Merge InnoDB-3.23.52d innobase/include/sync0rw.ic: Merge InnoDB-3.23.52d innobase/include/sync0sync.ic: Merge InnoDB-3.23.52d innobase/include/ut0dbg.h: Merge InnoDB-3.23.52d innobase/include/univ.i: Merge InnoDB-3.23.52d innobase/lock/lock0lock.c: Merge InnoDB-3.23.52d innobase/log/log0log.c: Merge InnoDB-3.23.52d innobase/mem/mem0pool.c: Merge InnoDB-3.23.52d innobase/os/os0file.c: Merge InnoDB-3.23.52d innobase/os/os0thread.c: Merge InnoDB-3.23.52d innobase/srv/srv0srv.c: Merge InnoDB-3.23.52d innobase/srv/srv0start.c: Merge InnoDB-3.23.52d innobase/sync/sync0arr.c: Merge InnoDB-3.23.52d innobase/sync/sync0rw.c: Merge InnoDB-3.23.52d innobase/sync/sync0sync.c: Merge InnoDB-3.23.52d innobase/thr/thr0loc.c: Merge InnoDB-3.23.52d innobase/trx/trx0trx.c: Merge InnoDB-3.23.52d innobase/configure.in: Merge InnoDB-3.23.52d sql/ha_innobase.cc: Merge InnoDB-3.23.52d
47 lines
1.4 KiB
Text
47 lines
1.4 KiB
Text
/******************************************************
|
|
The interface to the operating system synchronization primitives.
|
|
|
|
(c) 1995 Innobase Oy
|
|
|
|
Created 9/6/1995 Heikki Tuuri
|
|
*******************************************************/
|
|
|
|
#ifdef __WIN__
|
|
#include <winbase.h>
|
|
#endif
|
|
|
|
/**************************************************************
|
|
Acquires ownership of a fast mutex. Currently in Windows this is the same
|
|
as os_fast_mutex_lock! */
|
|
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__
|
|
EnterCriticalSection(fast_mutex);
|
|
|
|
return(0);
|
|
#else
|
|
#if defined(UNIV_HOTBACKUP) && defined(UNIV_HPUX10)
|
|
/* Since the hot backup version is standalone, MySQL does not redefine
|
|
pthread_mutex_trylock for HP-UX-10.20, and consequently we must invert
|
|
the return value here */
|
|
|
|
return((ulint) (1 - pthread_mutex_trylock(fast_mutex)));
|
|
#else
|
|
/* NOTE that the MySQL my_pthread.h redefines pthread_mutex_trylock
|
|
so that it returns 0 on success. In the operating system
|
|
libraries, HP-UX-10.20 follows the old Posix 1003.4a Draft 4 and
|
|
returns 1 on success (but MySQL remaps that to 0), while Linux,
|
|
FreeBSD, Solaris, AIX, Tru64 Unix, HP-UX-11.0 return 0 on success. */
|
|
|
|
return((ulint) pthread_mutex_trylock(fast_mutex));
|
|
#endif
|
|
#endif
|
|
}
|
|
|