| 57 | |
| 58 | |
| 59 | static void potential_deadlock_detected(const pair<void*, void*>& mismatch, const LockStack& s1, const LockStack& s2) |
| 60 | { |
| 61 | LogPrint(BCLog::INFO,"POTENTIAL DEADLOCK DETECTED\n"); |
| 62 | LogPrint(BCLog::INFO,"Previous lock order was:\n"); |
| 63 | for (const auto& i : s2) |
| 64 | { |
| 65 | if (i.first == mismatch.first) LogPrint(BCLog::INFO," (1)"); |
| 66 | if (i.first == mismatch.second) LogPrint(BCLog::INFO," (2)"); |
| 67 | LogPrint(BCLog::INFO," %s\n", i.second.ToString()); |
| 68 | } |
| 69 | LogPrint(BCLog::INFO,"Current lock order is:\n"); |
| 70 | for (const auto& i : s1) |
| 71 | { |
| 72 | if (i.first == mismatch.first) LogPrint(BCLog::INFO," (1)"); |
| 73 | if (i.first == mismatch.second) LogPrint(BCLog::INFO," (2)"); |
| 74 | LogPrint(BCLog::INFO," %s\n", i.second.ToString()); |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | static void push_lock(void* c, const CLockLocation& locklocation, bool fTry) |
| 79 | { |