@@ -1609,21 +1609,30 @@ log = "0.4"
16091609 /// This matches Python's subscribe semantics - start subscription first,
16101610 /// perform actions, then call the handle to collect results.
16111611 pub fn subscribe_background ( & self , queries : & [ & str ] , n : usize ) -> Result < SubscriptionHandle > {
1612- self . subscribe_background_opts ( queries, n, None )
1612+ self . subscribe_background_opts ( queries, n, Duration :: from_secs ( 30 ) , None )
1613+ }
1614+
1615+ pub fn subscribe_background_with_timeout (
1616+ & self ,
1617+ queries : & [ & str ] ,
1618+ n : usize ,
1619+ timeout : Duration ,
1620+ ) -> Result < SubscriptionHandle > {
1621+ self . subscribe_background_opts ( queries, n, timeout, None )
16131622 }
16141623
16151624 pub fn subscribe_background_on ( & self , database : & str , queries : & [ & str ] , n : usize ) -> Result < SubscriptionHandle > {
1616- self . subscribe_background_on_opts ( database, queries, n, Some ( false ) )
1625+ self . subscribe_background_on_opts ( database, queries, n, Duration :: from_secs ( 30 ) , Some ( false ) )
16171626 }
16181627
16191628 /// Starts a subscription in the background with --confirmed flag.
16201629 pub fn subscribe_background_confirmed ( & self , queries : & [ & str ] , n : usize ) -> Result < SubscriptionHandle > {
1621- self . subscribe_background_opts ( queries, n, Some ( true ) )
1630+ self . subscribe_background_opts ( queries, n, Duration :: from_secs ( 30 ) , Some ( true ) )
16221631 }
16231632
16241633 /// Starts a subscription in the background with --confirmed flag.
16251634 pub fn subscribe_background_unconfirmed ( & self , queries : & [ & str ] , n : usize ) -> Result < SubscriptionHandle > {
1626- self . subscribe_background_opts ( queries, n, Some ( false ) )
1635+ self . subscribe_background_opts ( queries, n, Duration :: from_secs ( 30 ) , Some ( false ) )
16271636 }
16281637
16291638 pub fn subscribe_background_on_confirmed (
@@ -1632,14 +1641,15 @@ log = "0.4"
16321641 queries : & [ & str ] ,
16331642 n : usize ,
16341643 ) -> Result < SubscriptionHandle > {
1635- self . subscribe_background_on_opts ( database, queries, n, Some ( true ) )
1644+ self . subscribe_background_on_opts ( database, queries, n, Duration :: from_secs ( 30 ) , Some ( true ) )
16361645 }
16371646
16381647 /// Internal helper for background subscribe with options.
16391648 fn subscribe_background_opts (
16401649 & self ,
16411650 queries : & [ & str ] ,
16421651 n : usize ,
1652+ timeout : Duration ,
16431653 confirmed : Option < bool > ,
16441654 ) -> Result < SubscriptionHandle > {
16451655 let identity = self
@@ -1648,24 +1658,26 @@ log = "0.4"
16481658 . context ( "No database published" ) ?
16491659 . clone ( ) ;
16501660
1651- self . subscribe_background_on_impl ( & identity, queries, n, confirmed)
1661+ self . subscribe_background_on_impl ( & identity, queries, n, timeout , confirmed)
16521662 }
16531663
16541664 fn subscribe_background_on_opts (
16551665 & self ,
16561666 database : & str ,
16571667 queries : & [ & str ] ,
16581668 n : usize ,
1669+ timeout : Duration ,
16591670 confirmed : Option < bool > ,
16601671 ) -> Result < SubscriptionHandle > {
1661- self . subscribe_background_on_impl ( database, queries, n, confirmed)
1672+ self . subscribe_background_on_impl ( database, queries, n, timeout , confirmed)
16621673 }
16631674
16641675 fn subscribe_background_on_impl (
16651676 & self ,
16661677 database : & str ,
16671678 queries : & [ & str ] ,
16681679 n : usize ,
1680+ timeout : Duration ,
16691681 confirmed : Option < bool > ,
16701682 ) -> Result < SubscriptionHandle > {
16711683 let cli_path = ensure_binaries_built ( ) ;
@@ -1680,7 +1692,7 @@ log = "0.4"
16801692 self . server_url. clone( ) ,
16811693 database. to_string( ) ,
16821694 "-t" . to_string( ) ,
1683- "30" . to_string( ) ,
1695+ timeout . as_secs ( ) . to_string( ) ,
16841696 "-n" . to_string( ) ,
16851697 n. to_string( ) ,
16861698 "--print-initial-update" . to_string( ) ,
0 commit comments