@@ -49,9 +49,10 @@ impl BlockDbImpl {
49
49
async_blocking ( move || {
50
50
let conn = Connection :: open ( path) . map_to_mm ( |err| ZcoinStorageError :: DbError ( err. to_string ( ) ) ) ?;
51
51
let conn = Arc :: new ( Mutex :: new ( conn) ) ;
52
- let conn_lock = conn. lock ( ) . unwrap ( ) ;
53
- run_optimization_pragmas ( & conn_lock) . map_to_mm ( |err| ZcoinStorageError :: DbError ( err. to_string ( ) ) ) ?;
54
- conn_lock
52
+ let conn_clone = conn. clone ( ) ;
53
+ let conn_clone = conn_clone. lock ( ) . unwrap ( ) ;
54
+ run_optimization_pragmas ( & conn_clone) . map_to_mm ( |err| ZcoinStorageError :: DbError ( err. to_string ( ) ) ) ?;
55
+ conn_clone
55
56
. execute (
56
57
"CREATE TABLE IF NOT EXISTS compactblocks (
57
58
height INTEGER PRIMARY KEY,
@@ -60,7 +61,6 @@ impl BlockDbImpl {
60
61
[ ] ,
61
62
)
62
63
. map_to_mm ( |err| ZcoinStorageError :: DbError ( err. to_string ( ) ) ) ?;
63
- drop ( conn_lock) ;
64
64
65
65
Ok ( Self { db : conn, ticker } )
66
66
} )
@@ -73,12 +73,11 @@ impl BlockDbImpl {
73
73
async_blocking ( move || {
74
74
let conn = ctx
75
75
. sqlite_connection
76
- . get ( )
77
- . cloned ( )
78
- . unwrap_or_else ( || Arc :: new ( Mutex :: new ( Connection :: open_in_memory ( ) . unwrap ( ) ) ) ) ;
79
- let conn_lock = conn. lock ( ) . unwrap ( ) ;
80
- run_optimization_pragmas ( & conn_lock) . map_err ( |err| ZcoinStorageError :: DbError ( err. to_string ( ) ) ) ?;
81
- conn_lock
76
+ . clone_or ( Arc :: new ( Mutex :: new ( Connection :: open_in_memory ( ) . unwrap ( ) ) ) ) ;
77
+ let conn_clone = conn. clone ( ) ;
78
+ let conn_clone = conn_clone. lock ( ) . unwrap ( ) ;
79
+ run_optimization_pragmas ( & conn_clone) . map_err ( |err| ZcoinStorageError :: DbError ( err. to_string ( ) ) ) ?;
80
+ conn_clone
82
81
. execute (
83
82
"CREATE TABLE IF NOT EXISTS compactblocks (
84
83
height INTEGER PRIMARY KEY,
@@ -87,7 +86,6 @@ impl BlockDbImpl {
87
86
[ ] ,
88
87
)
89
88
. map_to_mm ( |err| ZcoinStorageError :: DbError ( err. to_string ( ) ) ) ?;
90
- drop ( conn_lock) ;
91
89
92
90
Ok ( BlockDbImpl { db : conn, ticker } )
93
91
} )
0 commit comments