mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
ha_innodb.cc, sync0sync.h, sync0sync.c:
Use only noninlined InnoDB functions in ha_innodb.cc innobase/sync/sync0sync.c: Use only noninlined InnoDB functions in ha_innodb.cc innobase/include/sync0sync.h: Use only noninlined InnoDB functions in ha_innodb.cc sql/ha_innodb.cc: Use only noninlined InnoDB functions in ha_innodb.cc
This commit is contained in:
@ -65,6 +65,15 @@ NOTE! The following macro should be used in mutex locking, not the
|
|||||||
corresponding function. */
|
corresponding function. */
|
||||||
|
|
||||||
#define mutex_enter(M) mutex_enter_func((M), IB__FILE__, __LINE__)
|
#define mutex_enter(M) mutex_enter_func((M), IB__FILE__, __LINE__)
|
||||||
|
/**********************************************************************
|
||||||
|
A noninlined function that reserves a mutex. In ha_innodb.cc we have disabled
|
||||||
|
inlining of InnoDB functions, and no inlined functions should be called from
|
||||||
|
there. That is why we need to duplicate the inlined function here. */
|
||||||
|
|
||||||
|
void
|
||||||
|
mutex_enter_noninline(
|
||||||
|
/*==================*/
|
||||||
|
mutex_t* mutex); /* in: mutex */
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
NOTE! The following macro should be used in mutex locking, not the
|
NOTE! The following macro should be used in mutex locking, not the
|
||||||
corresponding function. */
|
corresponding function. */
|
||||||
@ -105,6 +114,13 @@ mutex_exit(
|
|||||||
/*=======*/
|
/*=======*/
|
||||||
mutex_t* mutex); /* in: pointer to mutex */
|
mutex_t* mutex); /* in: pointer to mutex */
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
Releases a mutex. */
|
||||||
|
|
||||||
|
void
|
||||||
|
mutex_exit_noninline(
|
||||||
|
/*=================*/
|
||||||
|
mutex_t* mutex); /* in: mutex */
|
||||||
|
/**********************************************************************
|
||||||
Returns TRUE if no mutex or rw-lock is currently locked.
|
Returns TRUE if no mutex or rw-lock is currently locked.
|
||||||
Works only in the debug version. */
|
Works only in the debug version. */
|
||||||
|
|
||||||
|
@ -167,6 +167,30 @@ struct sync_level_struct{
|
|||||||
ulint level; /* level of the latch in the latching order */
|
ulint level; /* level of the latch in the latching order */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
A noninlined function that reserves a mutex. In ha_innodb.cc we have disabled
|
||||||
|
inlining of InnoDB functions, and no inlined functions should be called from
|
||||||
|
there. That is why we need to duplicate the inlined function here. */
|
||||||
|
|
||||||
|
void
|
||||||
|
mutex_enter_noninline(
|
||||||
|
/*==================*/
|
||||||
|
mutex_t* mutex) /* in: mutex */
|
||||||
|
{
|
||||||
|
mutex_enter(mutex);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
Releases a mutex. */
|
||||||
|
|
||||||
|
void
|
||||||
|
mutex_exit_noninline(
|
||||||
|
/*=================*/
|
||||||
|
mutex_t* mutex) /* in: mutex */
|
||||||
|
{
|
||||||
|
mutex_exit(mutex);
|
||||||
|
}
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
Creates, or rather, initializes a mutex object in a specified memory
|
Creates, or rather, initializes a mutex object in a specified memory
|
||||||
location (which must be appropriately aligned). The mutex is initialized
|
location (which must be appropriately aligned). The mutex is initialized
|
||||||
|
@ -15,7 +15,9 @@
|
|||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
/* This file defines the InnoDB handler: the interface between MySQL and
|
/* This file defines the InnoDB handler: the interface between MySQL and
|
||||||
InnoDB */
|
InnoDB
|
||||||
|
NOTE: You can only use noninlined InnoDB functions in this file, because we
|
||||||
|
have disables the InnoDB inlining in this file. */
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#pragma implementation // gcc: Class implementation
|
#pragma implementation // gcc: Class implementation
|
||||||
@ -64,6 +66,7 @@ extern "C" {
|
|||||||
#include "../innobase/include/btr0cur.h"
|
#include "../innobase/include/btr0cur.h"
|
||||||
#include "../innobase/include/btr0btr.h"
|
#include "../innobase/include/btr0btr.h"
|
||||||
#include "../innobase/include/fsp0fsp.h"
|
#include "../innobase/include/fsp0fsp.h"
|
||||||
|
#include "../innobase/include/sync0sync.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
#define HA_INNOBASE_ROWS_IN_TABLE 10000 /* to get optimization right */
|
#define HA_INNOBASE_ROWS_IN_TABLE 10000 /* to get optimization right */
|
||||||
@ -4629,7 +4632,7 @@ innodb_show_status(
|
|||||||
long flen;
|
long flen;
|
||||||
char* str;
|
char* str;
|
||||||
|
|
||||||
mutex_enter(&srv_monitor_file_mutex);
|
mutex_enter_noninline(&srv_monitor_file_mutex);
|
||||||
rewind(srv_monitor_file);
|
rewind(srv_monitor_file);
|
||||||
srv_printf_innodb_monitor(srv_monitor_file);
|
srv_printf_innodb_monitor(srv_monitor_file);
|
||||||
flen = ftell(srv_monitor_file);
|
flen = ftell(srv_monitor_file);
|
||||||
@ -4650,7 +4653,7 @@ innodb_show_status(
|
|||||||
str[flen] = 0;
|
str[flen] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_exit(&srv_monitor_file_mutex);
|
mutex_exit_noninline(&srv_monitor_file_mutex);
|
||||||
|
|
||||||
List<Item> field_list;
|
List<Item> field_list;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user