@@ -71,8 +71,6 @@ impl VssStore {
7171 let id = ATOMIC_ID . fetch_add ( 1 , Ordering :: SeqCst ) ;
7272 format ! ( "ldk-node-vss-runtime-{}" , id)
7373 } )
74- . worker_threads ( INTERNAL_RUNTIME_WORKERS )
75- . max_blocking_threads ( INTERNAL_RUNTIME_WORKERS )
7674 . build ( )
7775 . unwrap ( ) ,
7876 ) ;
@@ -122,11 +120,7 @@ impl KVStoreSync for VssStore {
122120 let inner = Arc :: clone ( & self . inner ) ;
123121 let fut =
124122 async move { inner. read_internal ( primary_namespace, secondary_namespace, key) . await } ;
125- let spawned_fut = internal_runtime. spawn ( fut) ;
126- self . runtime . block_on ( async move { spawned_fut. await } ) . map_err ( |e| {
127- let msg = format ! ( "Failed to join read future: {}" , e) ;
128- Error :: new ( ErrorKind :: Other , msg)
129- } ) ?
123+ tokio:: task:: block_in_place ( move || internal_runtime. block_on ( async move { fut. await } ) )
130124 }
131125
132126 fn write (
@@ -156,11 +150,7 @@ impl KVStoreSync for VssStore {
156150 )
157151 . await
158152 } ;
159- let spawned_fut = internal_runtime. spawn ( fut) ;
160- self . runtime . block_on ( async move { spawned_fut. await } ) . map_err ( |e| {
161- let msg = format ! ( "Failed to join write future: {}" , e) ;
162- Error :: new ( ErrorKind :: Other , msg)
163- } ) ?
153+ tokio:: task:: block_in_place ( move || internal_runtime. block_on ( async move { fut. await } ) )
164154 }
165155
166156 fn remove (
@@ -189,11 +179,7 @@ impl KVStoreSync for VssStore {
189179 )
190180 . await
191181 } ;
192- let spawned_fut = internal_runtime. spawn ( fut) ;
193- self . runtime . block_on ( async move { spawned_fut. await } ) . map_err ( |e| {
194- let msg = format ! ( "Failed to join remove future: {}" , e) ;
195- Error :: new ( ErrorKind :: Other , msg)
196- } ) ?
182+ tokio:: task:: block_in_place ( move || internal_runtime. block_on ( async move { fut. await } ) )
197183 }
198184
199185 fn list ( & self , primary_namespace : & str , secondary_namespace : & str ) -> io:: Result < Vec < String > > {
@@ -206,11 +192,7 @@ impl KVStoreSync for VssStore {
206192 let secondary_namespace = secondary_namespace. to_string ( ) ;
207193 let inner = Arc :: clone ( & self . inner ) ;
208194 let fut = async move { inner. list_internal ( primary_namespace, secondary_namespace) . await } ;
209- let spawned_fut = internal_runtime. spawn ( fut) ;
210- self . runtime . block_on ( async move { spawned_fut. await } ) . map_err ( |e| {
211- let msg = format ! ( "Failed to join list future: {}" , e) ;
212- Error :: new ( ErrorKind :: Other , msg)
213- } ) ?
195+ tokio:: task:: block_in_place ( move || internal_runtime. block_on ( async move { fut. await } ) )
214196 }
215197}
216198
@@ -584,7 +566,7 @@ mod tests {
584566 use vss_client:: headers:: FixedHeaders ;
585567
586568 use super :: * ;
587- use crate :: io:: test_utils:: do_read_write_remove_list_persist;
569+ use crate :: io:: test_utils:: { do_invalid_write , do_read_write_remove_list_persist} ;
588570 use crate :: Logger ;
589571
590572 #[ test]
@@ -603,7 +585,23 @@ mod tests {
603585 do_read_write_remove_list_persist ( & vss_store) ;
604586 }
605587
606- #[ tokio:: test( flavor = "multi_thread" , worker_threads = 1 ) ]
588+ #[ test]
589+ fn invalid_write_panics ( ) {
590+ let logger = Arc :: new ( Logger :: new_log_facade ( ) ) ;
591+ let runtime = Arc :: new ( Runtime :: new ( logger) . unwrap ( ) ) ;
592+ let vss_base_url = std:: env:: var ( "TEST_VSS_BASE_URL" ) . unwrap ( ) ;
593+ let mut rng = thread_rng ( ) ;
594+ let rand_store_id: String = ( 0 ..7 ) . map ( |_| rng. sample ( Alphanumeric ) as char ) . collect ( ) ;
595+ let mut vss_seed = [ 0u8 ; 32 ] ;
596+ rng. fill_bytes ( & mut vss_seed) ;
597+ let header_provider = Arc :: new ( FixedHeaders :: new ( HashMap :: new ( ) ) ) ;
598+ let vss_store =
599+ VssStore :: new ( vss_base_url, rand_store_id, vss_seed, header_provider, runtime) ;
600+
601+ do_invalid_write ( & vss_store) ;
602+ }
603+
604+ #[ tokio:: test( flavor = "multi_thread" ) ]
607605 async fn vss_read_write_remove_list_persist_in_runtime_context ( ) {
608606 let logger = Arc :: new ( Logger :: new_log_facade ( ) ) ;
609607 let runtime = Arc :: new ( Runtime :: new ( logger) . unwrap ( ) ) ;
0 commit comments