mirror of
https://github.com/MariaDB/server.git
synced 2025-08-31 22:22:30 +03:00
Update to innoplug-1.0.4.
This commit is contained in:
@@ -1,6 +1,13 @@
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2009, Innobase Oy. All Rights Reserved.
|
||||
Copyright (c) 2009, Sun Microsystems, Inc.
|
||||
|
||||
Portions of this file contain modifications contributed and copyrighted by
|
||||
Sun Microsystems, Inc. Those modifications are gratefully acknowledged and
|
||||
are described briefly in the InnoDB documentation. The contributions by
|
||||
Sun Microsystems are incorporated with their permission, and subject to the
|
||||
conditions contained in the file COPYING.Sun_Microsystems.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
@@ -40,6 +47,28 @@ Created 1/20/1994 Heikki Tuuri
|
||||
/** Time stamp */
|
||||
typedef time_t ib_time_t;
|
||||
|
||||
#if defined(IB_HAVE_PAUSE_INSTRUCTION)
|
||||
# ifdef WIN32
|
||||
/* In the Win32 API, the x86 PAUSE instruction is executed by calling
|
||||
the YieldProcessor macro defined in WinNT.h. It is a CPU architecture-
|
||||
independent way by using YieldProcessor.*/
|
||||
# define UT_RELAX_CPU() YieldProcessor()
|
||||
# else
|
||||
/* According to the gcc info page, asm volatile means that the
|
||||
instruction has important side-effects and must not be removed.
|
||||
Also asm volatile may trigger a memory barrier (spilling all registers
|
||||
to memory). */
|
||||
# define UT_RELAX_CPU() __asm__ __volatile__ ("pause")
|
||||
# endif
|
||||
#elif defined(HAVE_ATOMIC_BUILTINS)
|
||||
# define UT_RELAX_CPU() do { \
|
||||
volatile lint volatile_var; \
|
||||
os_compare_and_swap_lint(&volatile_var, 0, 1); \
|
||||
} while (0)
|
||||
#else
|
||||
# define UT_RELAX_CPU() ((void)0) /* avoid warning for an empty statement */
|
||||
#endif
|
||||
|
||||
/*********************************************************************//**
|
||||
Delays execution for at most max_wait_us microseconds or returns earlier
|
||||
if cond becomes true.
|
||||
|
Reference in New Issue
Block a user