X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FLocker.java;h=097fdd08f3f94dae77fdf4508b9b1c58d858721d;hb=HEAD;hp=515b314ca8f10fb74627ee606e855493789a1c0e;hpb=0fc2ddc465cd9b9314ae336e69535020a96a7fbc;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/Locker.java b/app/src/main/java/net/ktnx/mobileledger/utils/Locker.java index 515b314c..097fdd08 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/Locker.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/Locker.java @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -19,8 +19,8 @@ package net.ktnx.mobileledger.utils; import java.util.concurrent.locks.ReentrantReadWriteLock; -public class Locker { - private ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); +public class Locker implements AutoCloseable { + private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); public LockHolder lockForWriting() { ReentrantReadWriteLock.WriteLock wLock = lock.writeLock(); wLock.lock(); @@ -35,4 +35,9 @@ public class Locker { rLock.lock(); return new LockHolder(rLock); } + @Override + public void close() { + lock.readLock().unlock(); + lock.writeLock().unlock(); + } }