summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2002-08-05 13:09:12 +0300
committerunknown <monty@mashka.mysql.fi>2002-08-05 13:09:12 +0300
commitf2dba61eefccc55f407f8ad0f7791e9a6646d229 (patch)
tree6c4664fa02a711d0ff2b5a7d86ff49e4d6784ff2 /sql
parentdd764d999ee270d3e3ad5e14881b7b16c247d762 (diff)
downloadmariadb-git-f2dba61eefccc55f407f8ad0f7791e9a6646d229.tar.gz
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.
Diffstat (limited to 'sql')
-rw-r--r--sql/gen_lex_hash.cc12
-rw-r--r--sql/slave.cc4
2 files changed, 13 insertions, 3 deletions
diff --git a/sql/gen_lex_hash.cc b/sql/gen_lex_hash.cc
index d47019ee040..22e40ff2830 100644
--- a/sql/gen_lex_hash.cc
+++ b/sql/gen_lex_hash.cc
@@ -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);
}
}
diff --git a/sql/slave.cc b/sql/slave.cc
index adbf3c106cc..6b79c567482 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -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)