Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
This commit is contained in:
commit
ebd3745c8c
@ -535,11 +535,19 @@ public:
|
|||||||
void close_active_vio();
|
void close_active_vio();
|
||||||
#endif
|
#endif
|
||||||
void awake(bool prepare_to_die);
|
void awake(bool prepare_to_die);
|
||||||
|
/*
|
||||||
|
For enter_cond() / exit_cond() to work the mutex must be got before
|
||||||
|
enter_cond() but released before exit_cond() (in 4.1, assertions will soon
|
||||||
|
ensure this). Use must be:
|
||||||
|
lock mutex; enter_cond(); ...; unlock mutex; exit_cond().
|
||||||
|
If you don't do it this way, you will get a deadlock if another thread is
|
||||||
|
doing a THD::awake() on you.
|
||||||
|
|
||||||
|
*/
|
||||||
inline const char* enter_cond(pthread_cond_t *cond, pthread_mutex_t* mutex,
|
inline const char* enter_cond(pthread_cond_t *cond, pthread_mutex_t* mutex,
|
||||||
const char* msg)
|
const char* msg)
|
||||||
{
|
{
|
||||||
const char* old_msg = proc_info;
|
const char* old_msg = proc_info;
|
||||||
safe_mutex_assert_owner(mutex);
|
|
||||||
mysys_var->current_mutex = mutex;
|
mysys_var->current_mutex = mutex;
|
||||||
mysys_var->current_cond = cond;
|
mysys_var->current_cond = cond;
|
||||||
proc_info = msg;
|
proc_info = msg;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user