diff options
author | unknown <heikki@hundin.mysql.fi> | 2004-04-09 22:18:18 +0300 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2004-04-09 22:18:18 +0300 |
commit | aab529aba5f0cdae53f91ee2ecb4463ef892f02f (patch) | |
tree | d730f62f831655089c71529d81c5d0d2e5e3d0c7 /innobase | |
parent | 1d4c31ed2155219c9da449528e76e2565118092f (diff) | |
download | mariadb-git-aab529aba5f0cdae53f91ee2ecb4463ef892f02f.tar.gz |
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
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/include/sync0sync.h | 16 | ||||
-rw-r--r-- | innobase/sync/sync0sync.c | 24 |
2 files changed, 40 insertions, 0 deletions
diff --git a/innobase/include/sync0sync.h b/innobase/include/sync0sync.h index abc5350b6c0..38f1489682a 100644 --- a/innobase/include/sync0sync.h +++ b/innobase/include/sync0sync.h @@ -65,6 +65,15 @@ NOTE! The following macro should be used in mutex locking, not the corresponding function. */ #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 corresponding function. */ @@ -105,6 +114,13 @@ mutex_exit( /*=======*/ 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. Works only in the debug version. */ diff --git a/innobase/sync/sync0sync.c b/innobase/sync/sync0sync.c index 952510c49e3..eaeb56b4983 100644 --- a/innobase/sync/sync0sync.c +++ b/innobase/sync/sync0sync.c @@ -168,6 +168,30 @@ struct sync_level_struct{ }; /********************************************************************** +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 location (which must be appropriately aligned). The mutex is initialized in the reset state. Explicit freeing of the mutex with mutex_free is |