add locks to config and storage
This commit is contained in:
parent
44edb4e2bb
commit
e82653f454
|
@ -1,12 +1,10 @@
|
|||
import json, ast
|
||||
import os, ast
|
||||
import json
|
||||
import ast
|
||||
import threading
|
||||
import os
|
||||
|
||||
from util import user_dir, print_error
|
||||
|
||||
from version import ELECTRUM_VERSION, SEED_VERSION
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class SimpleConfig:
|
||||
|
@ -17,6 +15,7 @@ user configurations from electrum.conf into separate dictionaries within
|
|||
a SimpleConfig instance then reads the wallet file.
|
||||
"""
|
||||
def __init__(self, options={}):
|
||||
self.lock = threading.Lock()
|
||||
|
||||
# system conf, readonly
|
||||
self.system_config = {}
|
||||
|
@ -65,8 +64,11 @@ a SimpleConfig instance then reads the wallet file.
|
|||
print "Warning: not changing '%s' because it was set in the system configuration"%key
|
||||
|
||||
else:
|
||||
self.user_config[key] = value
|
||||
if save: self.save_user_config()
|
||||
|
||||
with self.lock:
|
||||
self.user_config[key] = value
|
||||
if save:
|
||||
self.save_user_config()
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -68,6 +68,7 @@ from version import ELECTRUM_VERSION, SEED_VERSION
|
|||
class WalletStorage:
|
||||
|
||||
def __init__(self, config):
|
||||
self.lock = threading.Lock()
|
||||
self.data = {}
|
||||
self.file_exists = False
|
||||
self.init_path(config)
|
||||
|
@ -110,15 +111,13 @@ class WalletStorage:
|
|||
|
||||
def put(self, key, value, save = True):
|
||||
|
||||
if self.data.get(key) is not None:
|
||||
self.data[key] = value
|
||||
else:
|
||||
# add key to wallet config
|
||||
self.data[key] = value
|
||||
|
||||
if save:
|
||||
self.write()
|
||||
|
||||
with self.lock:
|
||||
if value is not None:
|
||||
self.data[key] = value
|
||||
else:
|
||||
self.data.pop[key]
|
||||
if save:
|
||||
self.write()
|
||||
|
||||
def write(self):
|
||||
s = repr(self.data)
|
||||
|
|
Loading…
Reference in New Issue