]> Git Repo - VerusCoin.git/blob - src/reverselock.h
Include a dubious "bug-fix" which allows exceptions to be thrown in reverselock destr...
[VerusCoin.git] / src / reverselock.h
1 // Copyright (c) 2015 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5 #ifndef BITCOIN_REVERSELOCK_H
6 #define BITCOIN_REVERSELOCK_H
7
8 /**
9  * An RAII-style reverse lock. Unlocks on construction and locks on destruction.
10  */
11 template<typename Lock>
12 class reverse_lock
13 {
14 public:
15
16     explicit reverse_lock(Lock& lock) : lock(lock) {
17         lock.unlock();
18     }
19
20     ~reverse_lock() noexcept(false) {
21         lock.lock();
22     }
23
24 private:
25     reverse_lock(reverse_lock const&);
26     reverse_lock& operator=(reverse_lock const&);
27
28     Lock& lock;
29 };
30
31 #endif // BITCOIN_REVERSELOCK_H
This page took 0.02109 seconds and 4 git commands to generate.