reorganize with_lock decorator
This commit is contained in:
@@ -32,7 +32,7 @@ from aiorpcx import TaskGroup
|
|||||||
|
|
||||||
from . import bitcoin, util
|
from . import bitcoin, util
|
||||||
from .bitcoin import COINBASE_MATURITY
|
from .bitcoin import COINBASE_MATURITY
|
||||||
from .util import profiler, bfh, TxMinedInfo, UnrelatedTransactionException
|
from .util import profiler, bfh, TxMinedInfo, UnrelatedTransactionException, with_lock
|
||||||
from .transaction import Transaction, TxOutput, TxInput, PartialTxInput, TxOutpoint, PartialTransaction
|
from .transaction import Transaction, TxOutput, TxInput, PartialTxInput, TxOutpoint, PartialTransaction
|
||||||
from .synchronizer import Synchronizer
|
from .synchronizer import Synchronizer
|
||||||
from .verifier import SPV
|
from .verifier import SPV
|
||||||
@@ -98,12 +98,6 @@ class AddressSynchronizer(Logger):
|
|||||||
|
|
||||||
self.load_and_cleanup()
|
self.load_and_cleanup()
|
||||||
|
|
||||||
def with_lock(func):
|
|
||||||
def func_wrapper(self: 'AddressSynchronizer', *args, **kwargs):
|
|
||||||
with self.lock:
|
|
||||||
return func(self, *args, **kwargs)
|
|
||||||
return func_wrapper
|
|
||||||
|
|
||||||
def with_transaction_lock(func):
|
def with_transaction_lock(func):
|
||||||
def func_wrapper(self: 'AddressSynchronizer', *args, **kwargs):
|
def func_wrapper(self: 'AddressSynchronizer', *args, **kwargs):
|
||||||
with self.transaction_lock:
|
with self.transaction_lock:
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ from . import util
|
|||||||
from .bitcoin import hash_encode, int_to_hex, rev_hex
|
from .bitcoin import hash_encode, int_to_hex, rev_hex
|
||||||
from .crypto import sha256d
|
from .crypto import sha256d
|
||||||
from . import constants
|
from . import constants
|
||||||
from .util import bfh, bh2u
|
from .util import bfh, bh2u, with_lock
|
||||||
from .simple_config import SimpleConfig
|
from .simple_config import SimpleConfig
|
||||||
from .logging import get_logger, Logger
|
from .logging import get_logger, Logger
|
||||||
|
|
||||||
@@ -195,12 +195,6 @@ class Blockchain(Logger):
|
|||||||
self.lock = threading.RLock()
|
self.lock = threading.RLock()
|
||||||
self.update_size()
|
self.update_size()
|
||||||
|
|
||||||
def with_lock(func):
|
|
||||||
def func_wrapper(self, *args, **kwargs):
|
|
||||||
with self.lock:
|
|
||||||
return func(self, *args, **kwargs)
|
|
||||||
return func_wrapper
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def checkpoints(self):
|
def checkpoints(self):
|
||||||
return constants.net.CHECKPOINTS
|
return constants.net.CHECKPOINTS
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from typing import Optional, Sequence, Tuple, List, Dict, TYPE_CHECKING, Set
|
|||||||
import threading
|
import threading
|
||||||
|
|
||||||
from .lnutil import SENT, RECEIVED, LOCAL, REMOTE, HTLCOwner, UpdateAddHtlc, Direction, FeeUpdate
|
from .lnutil import SENT, RECEIVED, LOCAL, REMOTE, HTLCOwner, UpdateAddHtlc, Direction, FeeUpdate
|
||||||
from .util import bh2u, bfh
|
from .util import bh2u, bfh, with_lock
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .json_db import StoredDict
|
from .json_db import StoredDict
|
||||||
@@ -50,12 +50,6 @@ class HTLCManager:
|
|||||||
|
|
||||||
self._init_maybe_active_htlc_ids()
|
self._init_maybe_active_htlc_ids()
|
||||||
|
|
||||||
def with_lock(func):
|
|
||||||
def func_wrapper(self, *args, **kwargs):
|
|
||||||
with self.lock:
|
|
||||||
return func(self, *args, **kwargs)
|
|
||||||
return func_wrapper
|
|
||||||
|
|
||||||
@with_lock
|
@with_lock
|
||||||
def ctn_latest(self, sub: HTLCOwner) -> int:
|
def ctn_latest(self, sub: HTLCOwner) -> int:
|
||||||
"""Return the ctn for the latest (newest that has a valid sig) ctx of sub"""
|
"""Return the ctn for the latest (newest that has a valid sig) ctx of sub"""
|
||||||
|
|||||||
@@ -1116,6 +1116,14 @@ def ignore_exceptions(func):
|
|||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
|
def with_lock(func):
|
||||||
|
"""Decorator to enforce a lock on a function call."""
|
||||||
|
def func_wrapper(self, *args, **kwargs):
|
||||||
|
with self.lock:
|
||||||
|
return func(self, *args, **kwargs)
|
||||||
|
return func_wrapper
|
||||||
|
|
||||||
|
|
||||||
class TxMinedInfo(NamedTuple):
|
class TxMinedInfo(NamedTuple):
|
||||||
height: int # height of block that mined tx
|
height: int # height of block that mined tx
|
||||||
conf: Optional[int] = None # number of confirmations, SPV verified (None means unknown)
|
conf: Optional[int] = None # number of confirmations, SPV verified (None means unknown)
|
||||||
|
|||||||
Reference in New Issue
Block a user