mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Added some mutex locks to make SLAVE START and SLAVE STOP thread safe.
Docs/manual.texi: Changelog sql/gen_lex_hash.cc: Merged --verbose option from 4.0 Smaller hash table sql/slave.cc: Added some mutex locks to make SLAVE START and SLAVE STOP thread safe.
This commit is contained in:
parent
dd764d999e
commit
f2dba61eef
3 changed files with 15 additions and 3 deletions
|
@ -46928,6 +46928,8 @@ not yet 100% confident in this code.
|
|||
@appendixsubsec Changes in release 3.23.52
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fixed thread bug in @code{SLAVE START} and @code{SLAVE STOP}.
|
||||
@item
|
||||
Added name of 'administrator command' logs.
|
||||
@item
|
||||
Fixed bug with creating an auto-increment value on second part of a
|
||||
|
|
|
@ -216,7 +216,7 @@ you have to change 'main' to print out the new function\n");
|
|||
return(1);
|
||||
}
|
||||
|
||||
if (opt_verbose)
|
||||
if (opt_verbose > 1)
|
||||
fprintf (stderr,"Info: Possible add values: %d\n",found-type_count);
|
||||
|
||||
for (prime=primes; (function_mod=*prime) ; prime++)
|
||||
|
@ -385,7 +385,7 @@ static int get_options(int argc, char **argv)
|
|||
opt_search=1;
|
||||
break;
|
||||
case 'v':
|
||||
opt_verbose=1;
|
||||
opt_verbose++;
|
||||
break;
|
||||
case 'V': usage(1); exit(0);
|
||||
case 'I':
|
||||
|
@ -481,7 +481,7 @@ int main(int argc,char **argv)
|
|||
int error;
|
||||
|
||||
MY_INIT(argv[0]);
|
||||
start_value=7740512L; best_t1=7953583L; best_t2=6918639L; best_type=1; /* mode=5449 add=1 type: 0 */
|
||||
start_value=2744811L; best_t1=5135075L; best_t2=1719450L; best_type=0; /* mode=4999 add=1 type: 0 */
|
||||
if (get_options(argc,(char **) argv))
|
||||
exit(1);
|
||||
|
||||
|
@ -502,6 +502,7 @@ int main(int argc,char **argv)
|
|||
start_value, best_t1,best_t2,best_type,best_mod,best_add,
|
||||
best_functype);
|
||||
|
||||
best_start_value=start_value;
|
||||
for (uint i=1 ; i <= opt_count ; i++)
|
||||
{
|
||||
if (i % 10 == 0)
|
||||
|
@ -524,6 +525,11 @@ int main(int argc,char **argv)
|
|||
best_start_value,best_t1,best_t2,best_type,best_mod,best_add,
|
||||
best_functype);
|
||||
}
|
||||
if (opt_verbose && (i % 20000) == 0)
|
||||
printf("\nstart_value=%ldL; best_t1=%ldL; best_t2=%ldL; best_type=%d;
|
||||
/* mode=%d add=%d type: %d */\n",
|
||||
best_start_value,best_t1,best_t2,best_type,best_mod,best_add,
|
||||
best_functype);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1301,7 +1301,9 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
|
|||
}
|
||||
thd->thread_stack = (char*)&thd; // remember where our stack is
|
||||
thd->temporary_tables = save_temporary_tables; // restore temp tables
|
||||
(void) pthread_mutex_lock(&LOCK_thread_count);
|
||||
threads.append(thd);
|
||||
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
||||
glob_mi.pending = 0; //this should always be set to 0 when the slave thread
|
||||
// is started
|
||||
|
||||
|
@ -1501,7 +1503,9 @@ position %s",
|
|||
pthread_mutex_unlock(&LOCK_slave);
|
||||
net_end(&thd->net); // destructor will not free it, because we are weird
|
||||
slave_thd = 0;
|
||||
(void) pthread_mutex_lock(&LOCK_thread_count);
|
||||
delete thd;
|
||||
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
||||
my_thread_end();
|
||||
#ifndef DBUG_OFF
|
||||
if(abort_slave_event_count && !events_till_abort)
|
||||
|
|
Loading…
Reference in a new issue