MCPcopy Create free account
hub / github.com/ElementsProject/elements / DeleteLock

Function DeleteLock

src/sync.cpp:294–311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

292template void AssertLockNotHeldInternal(const char*, const char*, int, RecursiveMutex*);
293
294void DeleteLock(void* cs)
295{
296 LockData& lockdata = GetLockData();
297 std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
298 const LockPair item = std::make_pair(cs, nullptr);
299 LockOrders::iterator it = lockdata.lockorders.lower_bound(item);
300 while (it != lockdata.lockorders.end() && it->first.first == cs) {
301 const LockPair invitem = std::make_pair(it->first.second, it->first.first);
302 lockdata.invlockorders.erase(invitem);
303 lockdata.lockorders.erase(it++);
304 }
305 InvLockOrders::iterator invit = lockdata.invlockorders.lower_bound(item);
306 while (invit != lockdata.invlockorders.end() && invit->first == cs) {
307 const LockPair invinvitem = std::make_pair(invit->second, invit->first);
308 lockdata.lockorders.erase(invinvitem);
309 lockdata.invlockorders.erase(invit++);
310 }
311}
312
313bool LockStackEmpty()
314{

Callers

nothing calls this directly

Calls 3

lower_boundMethod · 0.80
endMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected