diff options
author | unknown <marko@hundin.mysql.fi> | 2004-05-17 11:11:26 +0300 |
---|---|---|
committer | unknown <marko@hundin.mysql.fi> | 2004-05-17 11:11:26 +0300 |
commit | 29f480c504042ebe19dd88be2c885874667ad654 (patch) | |
tree | 46e883f7284e2f0dee5b7a484cf4662bf2499dd5 /innobase/include | |
parent | c004463171bf107b3903977ef02e1e098993ea70 (diff) | |
download | mariadb-git-29f480c504042ebe19dd88be2c885874667ad654.tar.gz |
InnoDB: Remove unused module sync0ipm
BitKeeper/deleted/.del-sync0ipm.c~48eb5196b6819734:
Delete: innobase/sync/sync0ipm.c
BitKeeper/deleted/.del-sync0ipm.h~92a27f3bd9b15164:
Delete: innobase/include/sync0ipm.h
BitKeeper/deleted/.del-sync0ipm.ic~2024167f6418de39:
Delete: innobase/include/sync0ipm.ic
innobase/sync/makefilewin:
Remove unused file sync0ipm.c
innobase/include/Makefile.am:
Remove unused files sync0ipm.h and sync0ipm.ic
innobase/sync/Makefile.am:
Remove unused file sync0ipm.c
Diffstat (limited to 'innobase/include')
-rw-r--r-- | innobase/include/Makefile.am | 2 | ||||
-rw-r--r-- | innobase/include/sync0ipm.h | 113 | ||||
-rw-r--r-- | innobase/include/sync0ipm.ic | 182 |
3 files changed, 1 insertions, 296 deletions
diff --git a/innobase/include/Makefile.am b/innobase/include/Makefile.am index 0a9aa928998..102d25566da 100644 --- a/innobase/include/Makefile.am +++ b/innobase/include/Makefile.am @@ -44,7 +44,7 @@ noinst_HEADERS = btr0btr.h btr0btr.ic btr0cur.h btr0cur.ic \ row0types.h row0uins.h row0uins.ic row0umod.h row0umod.ic \ row0undo.h row0undo.ic row0upd.h row0upd.ic row0vers.h \ row0vers.ic srv0que.h srv0srv.h srv0srv.ic srv0start.h \ - sync0arr.h sync0arr.ic sync0ipm.h sync0ipm.ic sync0rw.h \ + sync0arr.h sync0arr.ic sync0rw.h \ sync0rw.ic sync0sync.h sync0sync.ic sync0types.h \ thr0loc.h thr0loc.ic trx0purge.h trx0purge.ic trx0rec.h \ trx0rec.ic trx0roll.h trx0roll.ic trx0rseg.h trx0rseg.ic \ diff --git a/innobase/include/sync0ipm.h b/innobase/include/sync0ipm.h deleted file mode 100644 index 3244a6d26de..00000000000 --- a/innobase/include/sync0ipm.h +++ /dev/null @@ -1,113 +0,0 @@ -/****************************************************** -A fast mutex for interprocess synchronization. -mutex_t can be used only within single process, -but ip mutex also between processes. - -(c) 1995 Innobase Oy - -Created 9/30/1995 Heikki Tuuri -*******************************************************/ - -#ifndef sync0ipm_h -#define sync0ipm_h - -#include "univ.i" -#include "os0sync.h" -#include "sync0sync.h" - -typedef struct ip_mutex_hdl_struct ip_mutex_hdl_t; -typedef struct ip_mutex_struct ip_mutex_t; - -/* NOTE! The structure appears here only for the compiler to -know its size. Do not use its fields directly! -The structure used in a fast implementation of -an interprocess mutex. */ - -struct ip_mutex_struct { - mutex_t mutex; /* Ordinary mutex struct */ - ulint waiters; /* This field is set to 1 if - there may be waiters */ -}; - -/* The performance of the ip mutex in NT depends on how often -a thread has to suspend itself waiting for the ip mutex -to become free. The following variable counts system calls -involved. */ - -extern ulint ip_mutex_system_call_count; - -/********************************************************************** -Creates, or rather, initializes -an ip mutex object in a specified shared memory location (which must be -appropriately aligned). The ip mutex is initialized in the reset state. -NOTE! Explicit destroying of the ip mutex with ip_mutex_free -is not recommended -as the mutex resides in shared memory and we cannot make sure that -no process is currently accessing it. Therefore just use -ip_mutex_close to free the operating system event and mutex. */ - -ulint -ip_mutex_create( -/*============*/ - /* out: 0 if succeed */ - ip_mutex_t* ip_mutex, /* in: pointer to shared memory */ - char* name, /* in: name of the ip mutex */ - ip_mutex_hdl_t** handle); /* out, own: handle to the - created mutex; handle exists - in the private address space of - the calling process */ -/********************************************************************** -NOTE! Using this function is not recommended. See the note -on ip_mutex_create. Destroys an ip mutex */ - -void -ip_mutex_free( -/*==========*/ - ip_mutex_hdl_t* handle); /* in, own: ip mutex handle */ -/********************************************************************** -Opens an ip mutex object in a specified shared memory location. -Explicit closing of the ip mutex with ip_mutex_close is necessary to -free the operating system event and mutex created, and the handle. */ - -ulint -ip_mutex_open( -/*==========*/ - /* out: 0 if succeed */ - ip_mutex_t* ip_mutex, /* in: pointer to shared memory */ - char* name, /* in: name of the ip mutex */ - ip_mutex_hdl_t** handle); /* out, own: handle to the - opened mutex */ -/********************************************************************** -Closes an ip mutex. */ - -void -ip_mutex_close( -/*===========*/ - ip_mutex_hdl_t* handle); /* in, own: ip mutex handle */ -/****************************************************************** -Reserves an ip mutex. */ -UNIV_INLINE -ulint -ip_mutex_enter( -/*===========*/ - /* out: 0 if success, - SYNC_TIME_EXCEEDED if timeout */ - ip_mutex_hdl_t* ip_mutex_hdl, /* in: pointer to ip mutex handle */ - ulint time); /* in: maximum time to wait, in - microseconds, or - SYNC_INFINITE_TIME */ -/****************************************************************** -Releases an ip mutex. */ -UNIV_INLINE -void -ip_mutex_exit( -/*==========*/ - ip_mutex_hdl_t* ip_mutex_hdl); /* in: pointer to ip mutex handle */ - - - -#ifndef UNIV_NONINL -#include "sync0ipm.ic" -#endif - -#endif diff --git a/innobase/include/sync0ipm.ic b/innobase/include/sync0ipm.ic deleted file mode 100644 index b8aa87ba6d6..00000000000 --- a/innobase/include/sync0ipm.ic +++ /dev/null @@ -1,182 +0,0 @@ -/****************************************************** -A fast mutex for interprocess synchronization. -mutex_t can be used only within single process, -but ip_mutex_t also between processes. - -(c) 1995 Innobase Oy - -Created 9/30/1995 Heikki Tuuri -*******************************************************/ - -/* An extra structure created in the private address space of each process -which creates or opens the ip mutex. */ - -struct ip_mutex_hdl_struct { - ip_mutex_t* ip_mutex; /* pointer to ip mutex */ - os_event_t released; /* event which signals that the mutex - is released; this is obtained from - create or open of an ip mutex */ - os_mutex_t exclude; /* os mutex obtained when ip mutex is - created or opened */ -}; - - -UNIV_INLINE -ulint -ip_mutex_get_waiters( -volatile ip_mutex_t* ipm); -UNIV_INLINE -void -ip_mutex_set_waiters( -volatile ip_mutex_t* ipm, - ulint flag); -UNIV_INLINE -mutex_t* -ip_mutex_get_mutex( - ip_mutex_t* ipm); - - -/****************************************************************** -Accessor functions for ip mutex. */ -UNIV_INLINE -ulint -ip_mutex_get_waiters( -volatile ip_mutex_t* ipm) -{ - return(ipm->waiters); -} -UNIV_INLINE -void -ip_mutex_set_waiters( -volatile ip_mutex_t* ipm, - ulint flag) -{ - ipm->waiters = flag; -} -UNIV_INLINE -mutex_t* -ip_mutex_get_mutex( - ip_mutex_t* ipm) -{ - return(&(ipm->mutex)); -} - -/****************************************************************** -Reserves an ip mutex. */ -UNIV_INLINE -ulint -ip_mutex_enter( -/*===========*/ - /* out: 0 if success, - SYNC_TIME_EXCEEDED if timeout */ - ip_mutex_hdl_t* ip_mutex_hdl, /* in: pointer to ip mutex handle */ - ulint time) /* in: maximum time to wait, in - microseconds, or - SYNC_INFINITE_TIME */ -{ - mutex_t* mutex; - os_event_t released; - os_mutex_t exclude; - ip_mutex_t* ip_mutex; - ulint loop_count; - ulint ret; - - ip_mutex = ip_mutex_hdl->ip_mutex; - released = ip_mutex_hdl->released; - exclude = ip_mutex_hdl->exclude; - - mutex = ip_mutex_get_mutex(ip_mutex); - - loop_count = 0; -loop: - loop_count++; - ut_ad(loop_count < 15); - - if (mutex_enter_nowait(mutex, IB__FILE__, __LINE__) == 0) { - /* Succeeded! */ - - return(0); - } - - ip_mutex_system_call_count++; - - os_event_reset(released); - - /* Order is important here: FIRST reset event, then set waiters */ - ip_mutex_set_waiters(ip_mutex, 1); - - if (mutex_enter_nowait(mutex, IB__FILE__, __LINE__) == 0) { - /* Succeeded! */ - - return(0); - } - - if (time == SYNC_INFINITE_TIME) { - time = OS_SYNC_INFINITE_TIME; - } - - /* Suspend to wait for release */ - - ip_mutex_system_call_count++; - - ret = os_event_wait_time(released, time); - - ip_mutex_system_call_count++; - - os_mutex_enter(exclude); - ip_mutex_system_call_count++; - os_mutex_exit(exclude); - - if (ret != 0) { - ut_a(ret == OS_SYNC_TIME_EXCEEDED); - - return(SYNC_TIME_EXCEEDED); - } - - goto loop; -} - -/****************************************************************** -Releases an ip mutex. */ -UNIV_INLINE -void -ip_mutex_exit( -/*==========*/ - ip_mutex_hdl_t* ip_mutex_hdl) /* in: pointer to ip mutex handle */ -{ - mutex_t* mutex; - os_event_t released; - os_mutex_t exclude; - ip_mutex_t* ip_mutex; - - ip_mutex = ip_mutex_hdl->ip_mutex; - released = ip_mutex_hdl->released; - exclude = ip_mutex_hdl->exclude; - - mutex = ip_mutex_get_mutex(ip_mutex); - - mutex_exit(mutex); - - if (ip_mutex_get_waiters(ip_mutex) != 0) { - - ip_mutex_set_waiters(ip_mutex, 0); - - /* Order is important here: FIRST reset waiters, - then set event */ - - ip_mutex_system_call_count++; - os_mutex_enter(exclude); - - /* The use of the exclude mutex seems to prevent some - kind of a convoy problem in the test tsproc.c. We do - not know why. */ - - ip_mutex_system_call_count++; - - os_event_set(released); - - ip_mutex_system_call_count++; - - os_mutex_exit(exclude); - } -} |