Skip to content

Commit dc33dcf

Browse files
committed
fix: sync instead of pull when not remote_writes
1 parent 3a84ed4 commit dc33dcf

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

libsql/src/database.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ pub use builder::Builder;
77
#[cfg(feature = "core")]
88
pub use libsql_sys::{Cipher, EncryptionConfig};
99

10-
use crate::sync::DropAbort;
1110
use crate::{Connection, Result};
1211
use std::fmt;
1312
use std::sync::atomic::AtomicU64;
@@ -101,7 +100,7 @@ enum DbType {
101100
url: String,
102101
auth_token: String,
103102
connector: crate::util::ConnectorService,
104-
_bg_abort: Option<Arc<DropAbort>>,
103+
_bg_abort: Option<Arc<crate::sync::DropAbort>>,
105104
},
106105
#[cfg(feature = "remote")]
107106
Remote {
@@ -679,10 +678,8 @@ impl Database {
679678
..
680679
} => {
681680
use crate::{
682-
hrana::connection::HttpConnection,
683-
local::impls::LibsqlConnection,
684-
replication::connection::State,
685-
sync::connection::SyncedConnection,
681+
hrana::connection::HttpConnection, local::impls::LibsqlConnection,
682+
replication::connection::State, sync::connection::SyncedConnection,
686683
};
687684
use tokio::sync::Mutex;
688685

libsql/src/database/builder.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::sync::Arc;
66

77
use tracing::Instrument as _;
88

9-
use crate::{sync::DropAbort, Database, Result};
9+
use crate::{Database, Result};
1010

1111
use super::DbType;
1212

@@ -645,7 +645,7 @@ cfg_sync! {
645645
db.sync_ctx.as_ref().unwrap().lock().await.set_push_batch_size(push_batch_size);
646646
}
647647

648-
let mut bg_abort: Option<Arc<DropAbort>> = None;
648+
let mut bg_abort: Option<Arc<crate::sync::DropAbort>> = None;
649649
let conn = db.connect()?;
650650

651651
let sync_ctx = db.sync_ctx.as_ref().unwrap().clone();
@@ -656,17 +656,22 @@ cfg_sync! {
656656
loop {
657657
tracing::trace!("trying to sync");
658658
let mut ctx = sync_ctx.lock().await;
659-
if let Err(e) = crate::sync::try_pull(&mut ctx, &conn).await {
660-
tracing::error!("sync error: {}", e);
659+
if remote_writes {
660+
if let Err(e) = crate::sync::try_pull(&mut ctx, &conn).await {
661+
tracing::error!("sync error: {}", e);
662+
}
663+
} else {
664+
if let Err(e) = crate::sync::sync_offline(&mut ctx, &conn).await {
665+
tracing::error!("sync error: {}", e);
666+
}
661667
}
662-
663668
tokio::time::sleep(sync_interval).await;
664669
}
665670
}
666671
.instrument(tracing::info_span!("sync_interval")),
667672
);
668673

669-
bg_abort.replace(Arc::new(DropAbort(jh.abort_handle())));
674+
bg_abort.replace(Arc::new(crate::sync::DropAbort(jh.abort_handle())));
670675
}
671676

672677
Ok(Database {

0 commit comments

Comments
 (0)