diff options
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/configure.in | 3 | ||||
-rw-r--r-- | innobase/include/lock0types.h | 1 | ||||
-rw-r--r-- | innobase/include/os0sync.h | 8 | ||||
-rw-r--r-- | innobase/include/sync0types.h | 1 | ||||
-rw-r--r-- | innobase/os/os0file.c | 5 | ||||
-rw-r--r-- | innobase/srv/srv0start.c | 16 |
6 files changed, 28 insertions, 6 deletions
diff --git a/innobase/configure.in b/innobase/configure.in index 1289f881344..ba95df0cc8c 100644 --- a/innobase/configure.in +++ b/innobase/configure.in @@ -1,5 +1,6 @@ # Process this file with autoconf to produce a configure script -AC_INIT(./os/os0file.c) +AC_INIT +AM_MAINTAINER_MODE AM_CONFIG_HEADER(ib_config.h) AM_INIT_AUTOMAKE(ib, 0.90) AC_PROG_CC diff --git a/innobase/include/lock0types.h b/innobase/include/lock0types.h index 705e64f6581..6c3e54ee1fc 100644 --- a/innobase/include/lock0types.h +++ b/innobase/include/lock0types.h @@ -9,6 +9,7 @@ Created 5/7/1996 Heikki Tuuri #ifndef lock0types_h #define lock0types_h +#define lock_t ib_lock_t typedef struct lock_struct lock_t; typedef struct lock_sys_struct lock_sys_t; diff --git a/innobase/include/os0sync.h b/innobase/include/os0sync.h index dcf519fdb9d..3201a12b0a7 100644 --- a/innobase/include/os0sync.h +++ b/innobase/include/os0sync.h @@ -25,8 +25,8 @@ struct os_event_struct { fields */ ibool is_set; /* this is TRUE if the next mutex is not reserved */ - os_fast_mutex_t wait_mutex; /* this mutex is used in waiting for - the event */ + pthread_cond_t cond_var; /* condition variable is used in + waiting for the event */ }; typedef struct os_event_struct os_event_struct_t; typedef os_event_struct_t* os_event_t; @@ -190,9 +190,9 @@ os_fast_mutex_free( /*===============*/ os_fast_mutex_t* fast_mutex); /* in: mutex to free */ #endif - + #ifndef UNIV_NONINL #include "os0sync.ic" #endif -#endif +#endif diff --git a/innobase/include/sync0types.h b/innobase/include/sync0types.h index 2c31f80cca3..57478426f25 100644 --- a/innobase/include/sync0types.h +++ b/innobase/include/sync0types.h @@ -9,6 +9,7 @@ Created 9/5/1995 Heikki Tuuri #ifndef sync0types_h #define sync0types_h +#define mutex_t ib_mutex_t typedef struct mutex_struct mutex_t; diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index 7851b83732d..f155e15ac49 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -316,8 +316,11 @@ try_again: UT_NOT_USED(purpose); if (create_mode == OS_FILE_CREATE) { - +#ifndef S_IRWXU + file = open(name, create_flag); +#else file = open(name, create_flag, S_IRWXU | S_IRWXG | S_IRWXO); +#endif } else { file = open(name, create_flag); } diff --git a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c index f627e5d6aa5..a3e94b63e37 100644 --- a/innobase/srv/srv0start.c +++ b/innobase/srv/srv0start.c @@ -56,6 +56,9 @@ Created 2/16/1996 Heikki Tuuri #include "srv0start.h" #include "que0que.h" +ibool srv_is_being_started = FALSE; +ibool srv_was_started = FALSE; + ibool measure_cont = FALSE; os_file_t files[1000]; @@ -443,6 +446,8 @@ innobase_start_or_create_for_mysql(void) log_do_write = TRUE; /* yydebug = TRUE; */ + srv_is_being_started = TRUE; + os_aio_use_native_aio = srv_use_native_aio; err = srv_boot(); @@ -676,6 +681,9 @@ innobase_start_or_create_for_mysql(void) thread_ids + 2 + SRV_MAX_N_IO_THREADS); fprintf(stderr, "Innobase: Started\n"); + srv_was_started = TRUE; + srv_is_being_started = FALSE; + sync_order_checks_on = TRUE; /* buf_debug_prints = TRUE; */ @@ -691,6 +699,14 @@ innobase_shutdown_for_mysql(void) /*=============================*/ /* out: DB_SUCCESS or error code */ { + if (!srv_was_started) { + if (srv_is_being_started) { + fprintf(stderr, + "Innobase: Warning: shutting down not properly started database\n"); + } + return(DB_SUCCESS); + } + /* Flush buffer pool to disk, write the current lsn to the tablespace header(s), and copy all log data to archive */ |