~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/innobase/include/os0sync.ic

  • Committer: Monty Taylor
  • Date: 2008-10-27 23:19:48 UTC
  • mto: (520.4.12 merge-innodb-plugin)
  • mto: This revision was merged to the branch mainline in revision 563.
  • Revision ID: monty@inaugust.com-20081027231948-3kl6ss04plbakqcr
Split some more things out of common_includes.h.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/******************************************************
2
 
The interface to the operating system synchronization primitives.
3
 
 
4
 
(c) 1995 Innobase Oy
5
 
 
6
 
Created 9/6/1995 Heikki Tuuri
7
 
*******************************************************/
8
 
 
9
 
#ifdef __WIN__
10
 
#include <winbase.h>
11
 
#endif
12
 
 
13
 
/**************************************************************
14
 
Acquires ownership of a fast mutex. Currently in Windows this is the same
15
 
as os_fast_mutex_lock! */
16
 
UNIV_INLINE
17
 
ulint
18
 
os_fast_mutex_trylock(
19
 
/*==================*/
20
 
                                                /* out: 0 if success, != 0 if
21
 
                                                was reserved by another
22
 
                                                thread */
23
 
        os_fast_mutex_t*        fast_mutex)     /* in: mutex to acquire */
24
 
{
25
 
#ifdef __WIN__
26
 
        EnterCriticalSection(fast_mutex);
27
 
 
28
 
        return(0);
29
 
#else
30
 
#if defined(UNIV_HOTBACKUP) && defined(UNIV_HPUX10)
31
 
        /* Since the hot backup version is standalone, MySQL does not redefine
32
 
        pthread_mutex_trylock for HP-UX-10.20, and consequently we must invert
33
 
        the return value here */
34
 
 
35
 
        return((ulint) (1 - pthread_mutex_trylock(fast_mutex)));
36
 
#else
37
 
        /* NOTE that the MySQL my_pthread.h redefines pthread_mutex_trylock
38
 
        so that it returns 0 on success. In the operating system
39
 
        libraries, HP-UX-10.20 follows the old Posix 1003.4a Draft 4 and
40
 
        returns 1 on success (but MySQL remaps that to 0), while Linux,
41
 
        FreeBSD, Solaris, AIX, Tru64 Unix, HP-UX-11.0 return 0 on success. */
42
 
 
43
 
        return((ulint) pthread_mutex_trylock(fast_mutex));
44
 
#endif
45
 
#endif
46
 
}