mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
This commit is contained in:
commit
74c39cc118
4 changed files with 50 additions and 10 deletions
|
@ -127,7 +127,7 @@ void Listener_thread::run()
|
|||
fd_set read_fds_arg= read_fds;
|
||||
/*
|
||||
We should reintialize timer as on linux it is modified
|
||||
to reflect amout of time not slept.
|
||||
to reflect amount of time not slept.
|
||||
*/
|
||||
tv.tv_sec= 0;
|
||||
tv.tv_usec= 100000;
|
||||
|
@ -362,12 +362,13 @@ void Listener_thread::handle_new_mysql_connection(Vio *vio)
|
|||
pthread_attr_t mysql_thd_attr;
|
||||
pthread_attr_init(&mysql_thd_attr);
|
||||
pthread_attr_setdetachstate(&mysql_thd_attr, PTHREAD_CREATE_DETACHED);
|
||||
if (pthread_create(&mysql_thd_id, &mysql_thd_attr, mysql_connection,
|
||||
mysql_thread_args))
|
||||
if (set_stacksize_n_create_thread(&mysql_thd_id, &mysql_thd_attr,
|
||||
mysql_connection, mysql_thread_args))
|
||||
{
|
||||
delete mysql_thread_args;
|
||||
vio_delete(vio);
|
||||
log_error("handle_one_mysql_connection(): pthread_create(mysql) failed");
|
||||
log_error("handle_one_mysql_connection():"
|
||||
"set_stacksize_n_create_thread(mysql) failed");
|
||||
}
|
||||
pthread_attr_destroy(&mysql_thd_attr);
|
||||
}
|
||||
|
|
|
@ -162,12 +162,12 @@ void manager(const Options &options)
|
|||
|
||||
pthread_attr_init(&listener_thd_attr);
|
||||
pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
|
||||
rc= pthread_create(&listener_thd_id, &listener_thd_attr, listener,
|
||||
&listener_args);
|
||||
rc= set_stacksize_n_create_thread(&listener_thd_id, &listener_thd_attr,
|
||||
listener, &listener_args);
|
||||
pthread_attr_destroy(&listener_thd_attr);
|
||||
if (rc)
|
||||
{
|
||||
log_error("manager(): pthread_create(listener) failed");
|
||||
log_error("manager(): set_stacksize_n_create_thread(listener) failed");
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
@ -187,12 +187,12 @@ void manager(const Options &options)
|
|||
|
||||
pthread_attr_init(&guardian_thd_attr);
|
||||
pthread_attr_setdetachstate(&guardian_thd_attr, PTHREAD_CREATE_DETACHED);
|
||||
rc= pthread_create(&guardian_thd_id, &guardian_thd_attr, guardian,
|
||||
&guardian_thread);
|
||||
rc= set_stacksize_n_create_thread(&guardian_thd_id, &guardian_thd_attr,
|
||||
guardian, &guardian_thread);
|
||||
pthread_attr_destroy(&guardian_thd_attr);
|
||||
if (rc)
|
||||
{
|
||||
log_error("manager(): pthread_create(guardian) failed");
|
||||
log_error("manager(): set_stacksize_n_create_thread(guardian) failed");
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,17 @@
|
|||
#include "priv.h"
|
||||
#include "portability.h"
|
||||
|
||||
#if defined(__ia64__) || defined(__ia64)
|
||||
/*
|
||||
We can live with 32K, but reserve 64K. Just to be safe.
|
||||
On ia64 we need to reserve double of the size.
|
||||
*/
|
||||
#define IM_THREAD_STACK_SIZE (128*1024L)
|
||||
#else
|
||||
#define IM_THREAD_STACK_SIZE (64*1024)
|
||||
#endif
|
||||
|
||||
|
||||
/* the pid of the manager process (of the signal thread on the LinuxThreads) */
|
||||
pid_t manager_pid;
|
||||
|
||||
|
@ -52,3 +63,27 @@ unsigned int test_flags= 0;
|
|||
unsigned long bytes_sent = 0L, bytes_received = 0L;
|
||||
unsigned long mysqld_net_retry_count = 10L;
|
||||
unsigned long open_files_limit;
|
||||
|
||||
/*
|
||||
Change the stack size and start a thread. Return an error if either
|
||||
pthread_attr_setstacksize or pthread_create fails.
|
||||
Arguments are the same as for pthread_create().
|
||||
*/
|
||||
|
||||
int set_stacksize_n_create_thread(pthread_t *thread, pthread_attr_t *attr,
|
||||
void *(*start_routine)(void *), void *arg)
|
||||
{
|
||||
int rc;
|
||||
|
||||
/*
|
||||
Set stack size to be safe on the platforms with too small
|
||||
default thread stack.
|
||||
*/
|
||||
rc= pthread_attr_setstacksize(attr,
|
||||
(size_t) (PTHREAD_STACK_MIN +
|
||||
IM_THREAD_STACK_SIZE));
|
||||
|
||||
if (!rc)
|
||||
rc= pthread_create(thread, attr, start_routine, arg);
|
||||
return rc;
|
||||
}
|
||||
|
|
|
@ -80,4 +80,8 @@ extern unsigned long bytes_sent, bytes_received;
|
|||
extern unsigned long mysqld_net_retry_count;
|
||||
extern unsigned long open_files_limit;
|
||||
|
||||
|
||||
int set_stacksize_n_create_thread(pthread_t *thread, pthread_attr_t *attr,
|
||||
void *(*start_routine)(void *), void *arg);
|
||||
|
||||
#endif // INCLUDES_MYSQL_INSTANCE_MANAGER_PRIV_H
|
||||
|
|
Loading…
Reference in a new issue