diff options
author | unknown <jani@ua141d10.elisa.omakaista.fi> | 2006-01-12 15:10:12 +0200 |
---|---|---|
committer | unknown <jani@ua141d10.elisa.omakaista.fi> | 2006-01-12 15:10:12 +0200 |
commit | 2946f9a64f664293010777e422e7b66058ce323a (patch) | |
tree | df4234c3a0ca83e32bcec81b0e3a16f40606c301 | |
parent | 2dcedd9cbc4effee5a1c7e4c8045f2e8adced065 (diff) | |
download | mariadb-git-2946f9a64f664293010777e422e7b66058ce323a.tar.gz |
NetWare specific change to increase thread stack size.
Changes to Netware specific mysqld_safe.c
include/config-netware.h:
NetWare specific change to increase thread stack size.
innobase/os/os0thread.c:
NetWare specific change to increase thread stack size.
netware/mysqld_safe.c:
NetWare specific change to make multiple mysqld_safe instances
work when called through a NCF file.
sql/mysqld.cc:
NetWare specific change to increase thread stack size.
-rw-r--r-- | include/config-netware.h | 3 | ||||
-rw-r--r-- | innobase/os/os0thread.c | 9 | ||||
-rw-r--r-- | netware/mysqld_safe.c | 42 | ||||
-rw-r--r-- | sql/mysqld.cc | 5 |
4 files changed, 32 insertions, 27 deletions
diff --git a/include/config-netware.h b/include/config-netware.h index e07e972ba4b..43ee05e39ee 100644 --- a/include/config-netware.h +++ b/include/config-netware.h @@ -92,6 +92,9 @@ extern "C" { /* On NetWare, stack grows towards lower address*/ #define STACK_DIRECTION -1 +/* On NetWare, we need to set stack size for threads, otherwise default 16K is used */ +#define NW_THD_STACKSIZE 65536 + /* On NetWare, to fix the problem with the deletion of open files */ #define CANT_DELETE_OPEN_FILES 1 diff --git a/innobase/os/os0thread.c b/innobase/os/os0thread.c index 59d0fdbd8c9..cb72310f23d 100644 --- a/innobase/os/os0thread.c +++ b/innobase/os/os0thread.c @@ -148,6 +148,15 @@ os_thread_create( exit(1); } #endif +#ifdef __NETWARE__ + ret = pthread_attr_setstacksize(&attr, + (size_t) NW_THD_STACKSIZE); + if (ret) { + fprintf(stderr, + "InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret); + exit(1); + } +#endif os_mutex_enter(os_sync_mutex); os_thread_count++; os_mutex_exit(os_sync_mutex); diff --git a/netware/mysqld_safe.c b/netware/mysqld_safe.c index dbb49882140..5f65e2f45b7 100644 --- a/netware/mysqld_safe.c +++ b/netware/mysqld_safe.c @@ -252,51 +252,39 @@ void finish_defaults() ******************************************************************************/
void read_defaults(arg_list_t *pal) {
- arg_list_t al; - char defaults_file[PATH_MAX];
char mydefaults[PATH_MAX];
+ char mydefaults_command[3*PATH_MAX]; char line[PATH_MAX];
FILE *fp;
- // defaults output file
- snprintf(defaults_file, PATH_MAX, "%s/bin/defaults.out", basedir);
- remove(defaults_file);
-
- // mysqladmin file
+ // my_print_defaults file snprintf(mydefaults, PATH_MAX, "%s/bin/my_print_defaults", basedir);
- // args
- init_args(&al); - add_arg(&al, mydefaults); - if (default_option[0]) add_arg(&al, default_option); - add_arg(&al, "mysqld"); - add_arg(&al, "server"); - add_arg(&al, "mysqld_safe"); - add_arg(&al, "safe_mysqld"); -
- spawn(mydefaults, &al, TRUE, NULL, defaults_file, NULL); -
- free_args(&al); -
+ // args to my_print_defaults + if (default_option[0]) + { + snprintf(mydefaults_command, 3*PATH_MAX, "%s %s mysqld server mysqld_safe safe_mysqld", mydefaults, default_option); + } + else + { + snprintf(mydefaults_command, 3*PATH_MAX, "%s mysqld server mysqld_safe safe_mysqld", mydefaults); + } // gather defaults
- if((fp = fopen(defaults_file, "r")) != NULL)
+ if((fp = popen(mydefaults_command, "r")) != NULL) {
while(fgets(line, PATH_MAX, fp))
{
char *p;
// remove end-of-line character
- if ((p = strrchr(line, '\n')) != NULL) *p = '\0';
+ if ((p = strrchr(line, '\n')) != NULL) + *p = '\0'; // add the option as an argument
add_arg(pal, line);
}
-
- fclose(fp);
+ pclose(fp); }
-
- // remove file
- remove(defaults_file);
}
/******************************************************************************
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index f7df7233795..00bcdbf7132 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2402,6 +2402,11 @@ You should consider changing lower_case_table_names to 1 or 2", } } #endif +#ifdef __NETWARE__ + /* Increasing stacksize of threads on NetWare */ + + pthread_attr_setstacksize(&connection_attrib, NW_THD_STACKSIZE); +#endif if (!(opt_specialflag & SPECIAL_NO_PRIOR)) my_pthread_attr_setprio(&connection_attrib,WAIT_PRIOR); pthread_attr_setscope(&connection_attrib, PTHREAD_SCOPE_SYSTEM); |