mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Fix Unix build
This commit is contained in:
parent
e91bbca5fb
commit
c439494942
3 changed files with 14 additions and 13 deletions
|
@ -766,6 +766,8 @@ THD::THD()
|
|||
stmt_arena= this;
|
||||
thread_stack= 0;
|
||||
scheduler= thread_scheduler; // Will be fixed later
|
||||
event_scheduler.data= 0;
|
||||
event_scheduler.m_psi= 0;
|
||||
extra_port= 0;
|
||||
catalog= (char*)"std"; // the only catalog we have for now
|
||||
main_security_ctx.init();
|
||||
|
|
|
@ -2180,7 +2180,7 @@ static Sys_var_ulong Sys_thread_cache_size(
|
|||
GLOBAL_VAR(thread_cache_size), CMD_LINE(REQUIRED_ARG),
|
||||
VALID_RANGE(0, 16384), DEFAULT(0), BLOCK_SIZE(1));
|
||||
|
||||
#ifndef HAVE_POOL_OF_THREADS
|
||||
|
||||
static bool fix_tp_max_threads(sys_var *, THD *, enum_var_type)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
|
@ -2197,6 +2197,7 @@ static bool fix_tp_min_threads(sys_var *, THD *, enum_var_type)
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
static Sys_var_uint Sys_threadpool_min_threads(
|
||||
"thread_pool_min_threads",
|
||||
|
@ -2239,7 +2240,6 @@ static Sys_var_uint Sys_threadpool_max_threads(
|
|||
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
|
||||
ON_UPDATE(fix_tp_max_threads)
|
||||
);
|
||||
#endif /* !HAVE_POOL_OF_THREADS */
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -124,7 +124,6 @@ struct connection_t
|
|||
};
|
||||
|
||||
/* Externals functions and variables we use */
|
||||
extern uint thread_created;
|
||||
extern void scheduler_init();
|
||||
extern pthread_attr_t *get_connection_attrib(void);
|
||||
extern int skip_net_wait_timeout;
|
||||
|
@ -408,7 +407,7 @@ static void timeout_check(pool_timer_t *timer)
|
|||
if (thd->net.reading_or_writing != 1)
|
||||
continue;
|
||||
|
||||
connection_t *connection= (connection_t *)thd->scheduler.data;
|
||||
connection_t *connection= (connection_t *)thd->event_scheduler.data;
|
||||
if (!connection)
|
||||
continue;
|
||||
|
||||
|
@ -416,7 +415,7 @@ static void timeout_check(pool_timer_t *timer)
|
|||
{
|
||||
/* Wait timeout exceeded, kill connection. */
|
||||
mysql_mutex_lock(&thd->LOCK_thd_data);
|
||||
thd->killed = THD::KILL_CONNECTION;
|
||||
thd->killed = KILL_CONNECTION;
|
||||
tp_post_kill_notification(thd);
|
||||
mysql_mutex_unlock(&thd->LOCK_thd_data);
|
||||
}
|
||||
|
@ -449,7 +448,7 @@ static void* timer_thread(void *param)
|
|||
|
||||
pool_timer_t* timer=(pool_timer_t *)param;
|
||||
timer->next_timeout_check= ULONGLONG_MAX;
|
||||
timer->current_microtime= my_micro_time();
|
||||
timer->current_microtime= microsecond_interval_timer();
|
||||
|
||||
my_thread_init();
|
||||
DBUG_ENTER("timer_thread");
|
||||
|
@ -464,7 +463,7 @@ static void* timer_thread(void *param)
|
|||
break;
|
||||
if (err == ETIMEDOUT)
|
||||
{
|
||||
timer->current_microtime= my_micro_time();
|
||||
timer->current_microtime= microsecond_interval_timer();
|
||||
|
||||
/* Check stallls in thread groups */
|
||||
for(i=0; i< threadpool_size;i++)
|
||||
|
@ -643,7 +642,7 @@ static int create_worker(thread_group_t *thread_group)
|
|||
if (!err)
|
||||
{
|
||||
thread_group->pending_thread_start_count++;
|
||||
thread_group->last_thread_creation_time=my_micro_time();
|
||||
thread_group->last_thread_creation_time=microsecond_interval_timer();
|
||||
}
|
||||
DBUG_RETURN(err);
|
||||
}
|
||||
|
@ -673,7 +672,7 @@ static int wake_or_create_thread(thread_group_t *thread_group)
|
|||
DBUG_RETURN(create_worker(thread_group));
|
||||
}
|
||||
|
||||
now = my_micro_time();
|
||||
now = microsecond_interval_timer();
|
||||
time_since_last_thread_created =
|
||||
(now - thread_group->last_thread_creation_time)/1000;
|
||||
|
||||
|
@ -994,7 +993,7 @@ void tp_add_connection(THD *thd)
|
|||
mysql_mutex_lock(&c->thread_group->mutex);
|
||||
c->thread_group->connection_count++;
|
||||
mysql_mutex_unlock(&c->thread_group->mutex);
|
||||
c->thd->scheduler.data = c;
|
||||
c->thd->event_scheduler.data = c;
|
||||
post_event(c->thread_group,&c->event);
|
||||
}
|
||||
|
||||
|
@ -1032,7 +1031,7 @@ void tp_wait_begin(THD *thd, int type)
|
|||
if (!thd)
|
||||
DBUG_VOID_RETURN;
|
||||
|
||||
connection_t *connection = (connection_t *)thd->scheduler.data;
|
||||
connection_t *connection = (connection_t *)thd->event_scheduler.data;
|
||||
if(connection)
|
||||
{
|
||||
DBUG_ASSERT(!connection->waiting);
|
||||
|
@ -1049,7 +1048,7 @@ void tp_wait_end(THD *thd)
|
|||
if (!thd)
|
||||
DBUG_VOID_RETURN;
|
||||
|
||||
connection_t *connection = (connection_t *)thd->scheduler.data;
|
||||
connection_t *connection = (connection_t *)thd->event_scheduler.data;
|
||||
if(connection)
|
||||
{
|
||||
DBUG_ASSERT(connection->waiting);
|
||||
|
@ -1077,7 +1076,7 @@ static void set_wait_timeout(connection_t *c)
|
|||
DBUG_ENTER("set_wait_timeout");
|
||||
/*
|
||||
Calculate wait deadline for this connection.
|
||||
Instead of using my_micro_time() which has a syscall
|
||||
Instead of using microsecond_interval_timer() which has a syscall
|
||||
overhead, use pool_timer.current_microtime and take
|
||||
into account that its value could be off by at most
|
||||
one tick interval.
|
||||
|
|
Loading…
Add table
Reference in a new issue