NetWare specific change to increase thread stack size.

Changes to Netware specific mysqld_safe.c
parent fd4a0403
...@@ -92,6 +92,9 @@ extern "C" { ...@@ -92,6 +92,9 @@ extern "C" {
/* On NetWare, stack grows towards lower address*/ /* On NetWare, stack grows towards lower address*/
#define STACK_DIRECTION -1 #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 */ /* On NetWare, to fix the problem with the deletion of open files */
#define CANT_DELETE_OPEN_FILES 1 #define CANT_DELETE_OPEN_FILES 1
......
...@@ -147,6 +147,15 @@ os_thread_create( ...@@ -147,6 +147,15 @@ os_thread_create(
"InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret); "InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret);
exit(1); 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 #endif
os_mutex_enter(os_sync_mutex); os_mutex_enter(os_sync_mutex);
os_thread_count++; os_thread_count++;
......
...@@ -252,51 +252,39 @@ void finish_defaults() ...@@ -252,51 +252,39 @@ void finish_defaults()
******************************************************************************/ ******************************************************************************/
void read_defaults(arg_list_t *pal) void read_defaults(arg_list_t *pal)
{ {
arg_list_t al;
char defaults_file[PATH_MAX];
char mydefaults[PATH_MAX]; char mydefaults[PATH_MAX];
char mydefaults_command[3*PATH_MAX];
char line[PATH_MAX]; char line[PATH_MAX];
FILE *fp; FILE *fp;
// defaults output file // my_print_defaults file
snprintf(defaults_file, PATH_MAX, "%s/bin/defaults.out", basedir);
remove(defaults_file);
// mysqladmin file
snprintf(mydefaults, PATH_MAX, "%s/bin/my_print_defaults", basedir); snprintf(mydefaults, PATH_MAX, "%s/bin/my_print_defaults", basedir);
// args // args to my_print_defaults
init_args(&al); if (default_option[0])
add_arg(&al, mydefaults); {
if (default_option[0]) add_arg(&al, default_option); snprintf(mydefaults_command, 3*PATH_MAX, "%s %s mysqld server mysqld_safe safe_mysqld", mydefaults, default_option);
add_arg(&al, "mysqld"); }
add_arg(&al, "server"); else
add_arg(&al, "mysqld_safe"); {
add_arg(&al, "safe_mysqld"); snprintf(mydefaults_command, 3*PATH_MAX, "%s mysqld server mysqld_safe safe_mysqld", mydefaults);
}
spawn(mydefaults, &al, TRUE, NULL, defaults_file, NULL);
free_args(&al);
// gather defaults // gather defaults
if((fp = fopen(defaults_file, "r")) != NULL) if((fp = popen(mydefaults_command, "r")) != NULL)
{ {
while(fgets(line, PATH_MAX, fp)) while(fgets(line, PATH_MAX, fp))
{ {
char *p; char *p;
// remove end-of-line character // 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 the option as an argument
add_arg(pal, line); add_arg(pal, line);
} }
pclose(fp);
fclose(fp);
} }
// remove file
remove(defaults_file);
} }
/****************************************************************************** /******************************************************************************
......
...@@ -2401,6 +2401,11 @@ You should consider changing lower_case_table_names to 1 or 2", ...@@ -2401,6 +2401,11 @@ You should consider changing lower_case_table_names to 1 or 2",
thread_stack= stack_size; thread_stack= stack_size;
} }
} }
#endif
#ifdef __NETWARE__
/* Increasing stacksize of threads on NetWare */
pthread_attr_setstacksize(&connection_attrib, NW_THD_STACKSIZE);
#endif #endif
if (!(opt_specialflag & SPECIAL_NO_PRIOR)) if (!(opt_specialflag & SPECIAL_NO_PRIOR))
my_pthread_attr_setprio(&connection_attrib,WAIT_PRIOR); my_pthread_attr_setprio(&connection_attrib,WAIT_PRIOR);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment