Update to WiredTiger 1.6.3. Fix a condition where a mutex was unlocked twice on eagain when queues were all full.
This commit is contained in:
parent
420b658e27
commit
bd0323af7a
2 changed files with 4 additions and 6 deletions
|
@ -337,11 +337,9 @@ async_nif_enqueue_req(struct async_nif_state* async_nif, struct async_nif_req_en
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the for loop finished then we didn't find a suitable queue for this
|
/* If the for loop finished then we didn't find a suitable queue for this
|
||||||
request, meaning we're backed up so trigger eagain. */
|
request, meaning we're backed up so trigger eagain. Note that if we left
|
||||||
if (i == async_nif->num_queues) {
|
the loop in this way we hold no lock. */
|
||||||
enif_mutex_unlock(q->reqs_mutex);
|
if (i == async_nif->num_queues) return 0;
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add the request to the queue. */
|
/* Add the request to the queue. */
|
||||||
STAILQ_INSERT_TAIL(&q->reqs, req, entries);
|
STAILQ_INSERT_TAIL(&q->reqs, req, entries);
|
||||||
|
|
|
@ -12,7 +12,7 @@ set -e
|
||||||
|
|
||||||
WT_REPO=http://github.com/wiredtiger/wiredtiger.git
|
WT_REPO=http://github.com/wiredtiger/wiredtiger.git
|
||||||
WT_BRANCH=
|
WT_BRANCH=
|
||||||
WT_REF="tags/1.6.2"
|
WT_REF="tags/1.6.3"
|
||||||
WT_DIR=wiredtiger-`basename $WT_REF`
|
WT_DIR=wiredtiger-`basename $WT_REF`
|
||||||
|
|
||||||
SNAPPY_VSN="1.0.4"
|
SNAPPY_VSN="1.0.4"
|
||||||
|
|
Loading…
Reference in a new issue