summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2004-04-09 22:18:18 +0300
committerunknown <heikki@hundin.mysql.fi>2004-04-09 22:18:18 +0300
commitaab529aba5f0cdae53f91ee2ecb4463ef892f02f (patch)
treed730f62f831655089c71529d81c5d0d2e5e3d0c7 /innobase
parent1d4c31ed2155219c9da449528e76e2565118092f (diff)
downloadmariadb-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.h16
-rw-r--r--innobase/sync/sync0sync.c24
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