diff options
author | unknown <knielsen@knielsen-hq.org> | 2010-12-25 15:42:33 +0100 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2010-12-25 15:42:33 +0100 |
commit | 34a48dd4a0488934ea80d5e113484ab6aaa902f8 (patch) | |
tree | cbd232de0b6a097e66f20f8052ba06d3c516d1a8 /sql/sql_class.cc | |
parent | b3c72b9a02e570a4a66ca0a64e94fe1116976c85 (diff) | |
parent | a2d921be3634ceff4ab4c67f57b27a481d4a28df (diff) | |
download | mariadb-git-34a48dd4a0488934ea80d5e113484ab6aaa902f8.tar.gz |
Merge MWL#116 into mariadb-5.2-rpl.
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r-- | sql/sql_class.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index b64a5a71514..28699d59fc6 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -761,6 +761,8 @@ THD::THD() active_vio = 0; #endif pthread_mutex_init(&LOCK_thd_data, MY_MUTEX_INIT_FAST); + pthread_mutex_init(&LOCK_wakeup_ready, MY_MUTEX_INIT_FAST); + pthread_cond_init(&COND_wakeup_ready, 0); /* Variables with default values */ proc_info="login"; @@ -1147,6 +1149,8 @@ THD::~THD() free_root(&transaction.mem_root,MYF(0)); #endif mysys_var=0; // Safety (shouldn't be needed) + pthread_cond_destroy(&COND_wakeup_ready); + pthread_mutex_destroy(&LOCK_wakeup_ready); pthread_mutex_destroy(&LOCK_thd_data); #ifndef DBUG_OFF dbug_sentry= THD_SENTRY_GONE; @@ -4150,6 +4154,25 @@ int THD::binlog_query(THD::enum_binlog_query_type qtype, char const *query_arg, DBUG_RETURN(0); } +void +THD::wait_for_wakeup_ready() +{ + pthread_mutex_lock(&LOCK_wakeup_ready); + while (!wakeup_ready) + pthread_cond_wait(&COND_wakeup_ready, &LOCK_wakeup_ready); + pthread_mutex_unlock(&LOCK_wakeup_ready); +} + +void +THD::signal_wakeup_ready() +{ + pthread_mutex_lock(&LOCK_wakeup_ready); + wakeup_ready= true; + pthread_cond_signal(&COND_wakeup_ready); + pthread_mutex_unlock(&LOCK_wakeup_ready); +} + + bool Discrete_intervals_list::append(ulonglong start, ulonglong val, ulonglong incr) { |