mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
- use the connection_attib used to spawn threads
in the server. this fixes the problem with the limited number of threads because of them being non-detached. pthread_detach_this_tread() expands to empty on most platforms including SuSE but pthread_detach(pthread_self()) is not portable on Windows so the first macro should be used and the thread to be detached we have to create it as such. fix for bug#16984 (Events: running out of threads) WL#1034 (Internal CRON) sql/event_executor.cc: - use the connection_attib used to spawn threads in the server. this fixes the problem with the limited number of threads because of them being non-detached. pthread_detach_this_tread() expands to empty on most platforms including SuSE but pthread_detach(pthread_self()) is not portable on Windows so the first macro should be used and the thread to be detached we have to create it as such.
This commit is contained in:
@ -31,6 +31,7 @@
|
||||
|
||||
extern ulong thread_created;
|
||||
extern const char *my_localhost;
|
||||
extern pthread_attr_t connection_attrib;
|
||||
|
||||
pthread_mutex_t LOCK_event_arrays,
|
||||
LOCK_workers_count,
|
||||
@ -41,7 +42,7 @@ bool evex_is_running= false;
|
||||
|
||||
ulonglong evex_main_thread_id= 0;
|
||||
ulong opt_event_executor;
|
||||
volatile my_bool event_executor_running_global_var;
|
||||
my_bool event_executor_running_global_var;
|
||||
static my_bool evex_mutexes_initted= false;
|
||||
static uint workers_count;
|
||||
|
||||
@ -102,7 +103,7 @@ init_events()
|
||||
{
|
||||
#ifndef DBUG_FAULTY_THR
|
||||
//TODO Andrey: Change the error code returned!
|
||||
if (pthread_create(&th, NULL, event_executor_main, (void*)NULL))
|
||||
if (pthread_create(&th, &connection_attrib, event_executor_main,(void*)NULL))
|
||||
DBUG_RETURN(ER_SLAVE_THREAD);
|
||||
#else
|
||||
event_executor_main(NULL);
|
||||
@ -351,7 +352,7 @@ event_executor_main(void *arg)
|
||||
++iter_num;
|
||||
DBUG_PRINT("info", (" Spawning a thread %d", iter_num));
|
||||
#ifndef DBUG_FAULTY_THR
|
||||
if (pthread_create(&th, NULL, event_executor_worker, (void*)et))
|
||||
if (pthread_create(&th,&connection_attrib,event_executor_worker,(void*)et))
|
||||
{
|
||||
sql_print_error("Problem while trying to create a thread");
|
||||
UNLOCK_MUTEX_AND_BAIL_OUT(LOCK_event_arrays, err);
|
||||
|
Reference in New Issue
Block a user