From: unknown Date: Mon, 29 Sep 2014 17:24:01 +0000 (-0700) Subject: fix latch protocol in bt_atomicload X-Git-Url: https://pd.if.org/git/?p=btree;a=commitdiff_plain;h=7af1d62ea9301c15ee80a428749a17075ba44627 fix latch protocol in bt_atomicload --- diff --git a/threadskv8.c b/threadskv8.c index 02ac198..4441188 100644 --- a/threadskv8.c +++ b/threadskv8.c @@ -2325,17 +2325,19 @@ uint slot; bt_unlockpage(bt, BtLockRead, set->latch); bt_lockpage(bt, BtLockAtomic, set->latch); bt_lockpage(bt, BtLockRead, set->latch); - bt_unlockpage(bt, BtLockAccess, set->latch); if( !set->page->kill ) - if( slot = bt_findslot (set->page, key, len) ) + if( slot = bt_findslot (set->page, key, len) ) { + bt_unlockpage(bt, BtLockAccess, set->latch); return slot; + } bt_unlockpage(bt, BtLockAtomic, set->latch); } // slide right into next page + bt_unlockpage(bt, BtLockAccess, set->latch); page_no = bt_getid(set->page->right); prevlatch = set->latch; }