4062 Bjorn Munch 2012-11-06 [merge]
merge server part of 14549809 from 5.5.8-release
modified:
include/mysql/thread_pool_priv.h
sql/mysqld.cc
sql/sql_list.h
4061 Maitrayi Sabaratnam 2012-11-01 {clone-mysql-5.5.28-ndb-7.2.9-src-build} [merge]
Merge 7.1->7.2
modified:
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
=== modified file 'include/mysql/thread_pool_priv.h'
--- a/include/mysql/thread_pool_priv.h 2012-07-25 10:54:18 +0000
+++ b/include/mysql/thread_pool_priv.h 2012-08-28 14:13:03 +0000
@@ -62,24 +62,8 @@ void thd_set_mysys_var(THD *thd, st_my_t
ulong thd_get_net_wait_timeout(THD *thd);
my_socket thd_get_fd(THD *thd);
-/* Interface class for global thread list iteration */
-class Thread_iterator
-{
- public:
- Thread_iterator() : m_iterator(threads) {}
- THD* next()
- {
- THD* tmp = m_iterator++;
- return tmp;
- }
- private:
- /*
- Don't allow copying of this class.
- */
- Thread_iterator(const Thread_iterator&);
- void operator=(const Thread_iterator&);
- I_List_iterator<THD> m_iterator;
-};
+THD *first_global_thread();
+THD *next_global_thread(THD *thd);
/* Print to the MySQL error log */
void sql_print_error(const char *format, ...);
=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc 2012-10-22 13:09:36 +0000
+++ b/sql/mysqld.cc 2012-11-06 12:50:31 +0000
@@ -609,6 +609,21 @@ I_List<THD> threads;
Rpl_filter* rpl_filter;
Rpl_filter* binlog_filter;
+THD *first_global_thread()
+{
+ if (threads.is_empty())
+ return NULL;
+ return threads.head();
+}
+
+THD *next_global_thread(THD *thd)
+{
+ if (threads.is_last(thd))
+ return NULL;
+ struct ilink *next= thd->next;
+ return static_cast<THD*>(next);
+}
+
struct system_variables global_system_variables;
struct system_variables max_system_variables;
struct system_status_var global_status_var;
=== modified file 'sql/sql_list.h'
--- a/sql/sql_list.h 2011-08-31 10:39:08 +0000
+++ b/sql/sql_list.h 2012-11-06 12:50:31 +0000
@@ -585,6 +585,9 @@ public:
inline void empty() { first= &last; last.prev= &first; }
base_ilist() { empty(); }
inline bool is_empty() { return first == &last; }
+ // Returns true if p is the last "real" object in the list,
+ // i.e. p->next points to the sentinel.
+ inline bool is_last(ilink *p) { return p->next == NULL || p->next == &last; }
inline void append(ilink *a)
{
first->prev= &a->next;
@@ -660,6 +663,7 @@ class I_List :private base_ilist
{
public:
I_List() :base_ilist() {}
+ inline bool is_last(T *p) { return base_ilist::is_last(p); }
inline void empty() { base_ilist::empty(); }
inline bool is_empty() { return base_ilist::is_empty(); }
inline void append(T* a) { base_ilist::append(a); }
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.5-cluster-7.2 branch (bjorn.munch:4061 to 4062) | Bjorn Munch | 16 Nov |