diff options
author | Jan Lindström <jplindst@mariadb.org> | 2014-02-15 09:51:06 +0200 |
---|---|---|
committer | Jan Lindström <jplindst@mariadb.org> | 2014-02-15 09:51:06 +0200 |
commit | 25318038a92872492036e8eb5da9363f22d1b7c2 (patch) | |
tree | ed65c95bef04a11069e77bb8b59e94a4f4d95d78 /storage/xtradb/buf | |
parent | cae21c52f604ba804f07f858edae5a930978d820 (diff) | |
download | mariadb-git-25318038a92872492036e8eb5da9363f22d1b7c2.tar.gz |
Fixed hang seen on TPC-C measure phase. We should not use timedwait on threads
waiting for a job. They should sleep and let other threads to their work. At
shutdown, we know that we put "work" and that is handled as soon as possible.
Diffstat (limited to 'storage/xtradb/buf')
-rw-r--r-- | storage/xtradb/buf/buf0mtflu.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/storage/xtradb/buf/buf0mtflu.cc b/storage/xtradb/buf/buf0mtflu.cc index 1f43e84a12f..55902cc7a58 100644 --- a/storage/xtradb/buf/buf0mtflu.cc +++ b/storage/xtradb/buf/buf0mtflu.cc @@ -282,12 +282,12 @@ mtflush_service_io( ulint n_flushed=0; mtflush_io->wt_status = WTHR_SIG_WAITING; - work_item = (wrk_t *)ib_wqueue_timedwait(mtflush_io->wq, MT_WAIT_IN_USECS); + work_item = (wrk_t *)ib_wqueue_wait(mtflush_io->wq); if (work_item) { mtflush_io->wt_status = WTHR_RUNNING; } else { - /* Because of timeout this thread did not get any work */ + /* Thread did not get any work */ mtflush_io->wt_status = WTHR_NO_WORK; return; } @@ -557,7 +557,7 @@ buf_mtflu_flush_work_items( /* wait on the completion to arrive */ for(i=0; i< buf_pool_inst;) { - done_wi = (wrk_t *)ib_wqueue_timedwait(mtflush_ctx->wr_cq, MT_WAIT_IN_USECS); + done_wi = (wrk_t *)ib_wqueue_wait(mtflush_ctx->wr_cq); if (done_wi != NULL) { if(done_wi->n_flushed == 0) { |