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:
Gregory Burd 2013-07-15 12:21:10 -04:00
parent 420b658e27
commit bd0323af7a
2 changed files with 4 additions and 6 deletions

View file

@ -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
request, meaning we're backed up so trigger eagain. */
if (i == async_nif->num_queues) {
enif_mutex_unlock(q->reqs_mutex);
return 0;
}
request, meaning we're backed up so trigger eagain. Note that if we left
the loop in this way we hold no lock. */
if (i == async_nif->num_queues) return 0;
/* Add the request to the queue. */
STAILQ_INSERT_TAIL(&q->reqs, req, entries);

View file

@ -12,7 +12,7 @@ set -e
WT_REPO=http://github.com/wiredtiger/wiredtiger.git
WT_BRANCH=
WT_REF="tags/1.6.2"
WT_REF="tags/1.6.3"
WT_DIR=wiredtiger-`basename $WT_REF`
SNAPPY_VSN="1.0.4"