Commit 15d09dd7 authored by Leif Walsh's avatar Leif Walsh Committed by Yoni Fogel

refs #5386 add comments


git-svn-id: file:///svn/toku/tokudb@46954 c7de825b-a66e-492c-adef-691d508d4ae1
parent 84af1976
...@@ -1397,7 +1397,8 @@ static void checkpoint_pair_and_dependent_pairs( ...@@ -1397,7 +1397,8 @@ static void checkpoint_pair_and_dependent_pairs(
// on output, the pair's mutex is not held. // on output, the pair's mutex is not held.
// if true, we must try again, and pair is not pinned // if true, we must try again, and pair is not pinned
// if false, we succeeded, the pair is pinned // if false, we succeeded, the pair is pinned
// NOTE: On entry and exit, the read list lock is held. // NOTE: On entry, the read list lock may be held (and have_read_list_lock must be set accordingly).
// On exit, the read list lock is held.
static bool try_pin_pair( static bool try_pin_pair(
PAIR p, PAIR p,
CACHETABLE ct, CACHETABLE ct,
...@@ -1426,6 +1427,7 @@ static bool try_pin_pair( ...@@ -1426,6 +1427,7 @@ static bool try_pin_pair(
nb_mutex_lock(&p->value_nb_mutex, &p->mutex); nb_mutex_lock(&p->value_nb_mutex, &p->mutex);
pair_touch(p); pair_touch(p);
pair_unlock(p); pair_unlock(p);
// reacquire the read list lock here, we hold it for the rest of the function.
if (reacquire_lock) { if (reacquire_lock) {
ct->list.read_list_lock(); ct->list.read_list_lock();
} }
...@@ -1542,8 +1544,8 @@ int toku_cachetable_get_and_pin_with_dep_pairs_batched ( ...@@ -1542,8 +1544,8 @@ int toku_cachetable_get_and_pin_with_dep_pairs_batched (
PAIR p = ct->list.find_pair(cachefile, key, fullhash); PAIR p = ct->list.find_pair(cachefile, key, fullhash);
if (p) { if (p) {
pair_lock(p); pair_lock(p);
// on entry, holds p->mutex, // on entry, holds p->mutex and read list lock
// on exit, does not hold p->mutex // on exit, does not hold p->mutex, holds read list lock
bool try_again = try_pin_pair( bool try_again = try_pin_pair(
p, p,
ct, ct,
...@@ -1585,7 +1587,7 @@ int toku_cachetable_get_and_pin_with_dep_pairs_batched ( ...@@ -1585,7 +1587,7 @@ int toku_cachetable_get_and_pin_with_dep_pairs_batched (
// we will gain the read_list_lock again before exiting try_pin_pair // we will gain the read_list_lock again before exiting try_pin_pair
// on entry, holds p->mutex, // on entry, holds p->mutex,
// on exit, does not hold p->mutex // on exit, does not hold p->mutex, holds read list lock
bool try_again = try_pin_pair( bool try_again = try_pin_pair(
p, p,
ct, ct,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment