summaryrefslogtreecommitdiff
path: root/storage/xtradb/buf
diff options
context:
space:
mode:
authorJan Lindström <jplindst@mariadb.org>2014-02-15 09:51:06 +0200
committerJan Lindström <jplindst@mariadb.org>2014-02-15 09:51:06 +0200
commit25318038a92872492036e8eb5da9363f22d1b7c2 (patch)
treeed65c95bef04a11069e77bb8b59e94a4f4d95d78 /storage/xtradb/buf
parentcae21c52f604ba804f07f858edae5a930978d820 (diff)
downloadmariadb-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.cc6
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) {