diff options
author | unknown <brian@zim.(none)> | 2007-03-16 19:06:10 -0700 |
---|---|---|
committer | unknown <brian@zim.(none)> | 2007-03-16 19:06:10 -0700 |
commit | dcd672e2d7f8fcf7d21c01e58e6b32e88f06066f (patch) | |
tree | 94c263267d46084f33a7bb2302b0baaf1ebfadd4 | |
parent | f7e30b0599af30f0d5f60b04b95e8b515f244c64 (diff) | |
parent | c554f58ca15e61cf23a5854d6c653426b29f5961 (diff) | |
download | mariadb-git-dcd672e2d7f8fcf7d21c01e58e6b32e88f06066f.tar.gz |
Merge zim.(none):/home/bk/mysql-5.1-arch
into zim.(none):/home/brian/mysql/slap-5.1
-rw-r--r-- | client/mysqlslap.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/client/mysqlslap.c b/client/mysqlslap.c index 1b4692848b9..62ee2b03359 100644 --- a/client/mysqlslap.c +++ b/client/mysqlslap.c @@ -248,7 +248,7 @@ static int create_schema(MYSQL *mysql, const char *db, statement *stmt, option_string *engine_stmt); static int run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit); -int run_task(thread_context *con); +pthread_handler_t run_task(void *p); void statement_cleanup(statement *stmt); void option_cleanup(option_string *stmt); void concurrency_loop(MYSQL *mysql, uint current, option_string *eptr); @@ -1562,6 +1562,11 @@ run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit) pthread_t mainthread; /* Thread descriptor */ pthread_attr_t attr; /* Thread attributes */ + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, + PTHREAD_CREATE_DETACHED); + + pthread_mutex_lock(&counter_mutex); thread_counter= 0; @@ -1570,12 +1575,8 @@ run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit) pthread_mutex_unlock(&sleeper_mutex); for (x= 0; x < concur; x++) { - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, - PTHREAD_CREATE_DETACHED); - - /* now create the thread */ - if (pthread_create(&mainthread, &attr, (void *)run_task, + /* nowucreate the thread */ + if (pthread_create(&mainthread, &attr, run_task, (void *)&con) != 0) { fprintf(stderr,"%s: Could not create thread\n", @@ -1605,6 +1606,7 @@ run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit) pthread_cond_timedwait(&count_threshhold, &counter_mutex, &abstime); } pthread_mutex_unlock(&counter_mutex); + pthread_attr_destroy(&attr); gettimeofday(&end_time, NULL); @@ -1617,14 +1619,14 @@ run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit) } -int -run_task(thread_context *con) +pthread_handler_t run_task(void *p) { ulonglong counter= 0, queries; MYSQL *mysql; MYSQL_RES *result; MYSQL_ROW row; statement *ptr; + thread_context *con= (thread_context *)p; DBUG_ENTER("run_task"); DBUG_PRINT("info", ("task script \"%s\"", con->stmt ? con->stmt->string : "")); |