summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
Diffstat (limited to 'innobase')
-rw-r--r--innobase/configure.in3
-rw-r--r--innobase/include/lock0types.h1
-rw-r--r--innobase/include/os0sync.h8
-rw-r--r--innobase/include/sync0types.h1
-rw-r--r--innobase/os/os0file.c5
-rw-r--r--innobase/srv/srv0start.c16
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 */