add info statements

Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
kernelkind
2025-07-16 13:58:25 -04:00
parent cc92fc2082
commit 5168d50257

View File

@@ -270,7 +270,7 @@ pub struct TimelineSub {
state: SubState,
}
#[derive(Debug)]
#[derive(Debug, Clone)]
enum SubState {
NoSub {
dependers: usize,
@@ -300,6 +300,7 @@ impl Default for TimelineSub {
impl TimelineSub {
pub fn try_add_local(&mut self, ndb: &Ndb, filter: &[Filter]) {
let before = self.state.clone();
match &mut self.state {
SubState::NoSub { dependers } => {
let Some(sub) = ndb_sub(ndb, filter, "") else {
@@ -333,9 +334,15 @@ impl TimelineSub {
dependers: _,
} => {}
}
tracing::info!(
"TimelineSub::try_add_local: {:?} => {:?}",
before,
self.state
);
}
pub fn force_add_remote(&mut self, subid: String) {
let before = self.state.clone();
match &mut self.state {
SubState::NoSub { dependers } => {
self.state = SubState::RemoteOnly {
@@ -361,9 +368,15 @@ impl TimelineSub {
dependers: _,
} => {}
}
tracing::info!(
"TimelineSub::force_add_remote: {:?} => {:?}",
before,
self.state
);
}
pub fn try_add_remote(&mut self, pool: &mut RelayPool, filter: &Vec<Filter>) {
let before = self.state.clone();
match &mut self.state {
SubState::NoSub { dependers } => {
let subid = subscriptions::new_sub_id();
@@ -395,9 +408,15 @@ impl TimelineSub {
dependers: _,
} => {}
}
tracing::info!(
"TimelineSub::try_add_remote: {:?} => {:?}",
before,
self.state
);
}
pub fn increment(&mut self) {
let before = self.state.clone();
match &mut self.state {
SubState::NoSub { dependers } => {
*dependers += 1;
@@ -421,6 +440,8 @@ impl TimelineSub {
*dependers += 1;
}
}
tracing::info!("TimelineSub::increment: {:?} => {:?}", before, self.state);
}
pub fn get_local(&self) -> Option<Subscription> {
@@ -442,54 +463,60 @@ impl TimelineSub {
}
pub fn unsubscribe_or_decrement(&mut self, ndb: &mut Ndb, pool: &mut RelayPool) {
match &mut self.state {
SubState::NoSub { dependers } => {
*dependers -= 1;
}
SubState::LocalOnly { local, dependers } => {
if *dependers > 1 {
let before = self.state.clone();
's: {
match &mut self.state {
SubState::NoSub { dependers } => {
*dependers -= 1;
return;
}
if let Err(e) = ndb.unsubscribe(*local) {
tracing::error!("Could not unsub ndb: {e}");
return;
}
self.state = SubState::NoSub { dependers: 0 };
}
SubState::RemoteOnly { remote, dependers } => {
if *dependers > 1 {
*dependers -= 1;
return;
}
pool.unsubscribe(remote.to_owned());
self.state = SubState::NoSub { dependers: 0 };
}
SubState::Unified { unified, dependers } => {
if *dependers > 1 {
*dependers -= 1;
return;
}
pool.unsubscribe(unified.remote.to_owned());
if let Err(e) = ndb.unsubscribe(unified.local) {
tracing::error!("could not unsub ndb: {e}");
self.state = SubState::LocalOnly {
local: unified.local,
dependers: *dependers,
SubState::LocalOnly { local, dependers } => {
if *dependers > 1 {
*dependers -= 1;
break 's;
}
if let Err(e) = ndb.unsubscribe(*local) {
tracing::error!("Could not unsub ndb: {e}");
break 's;
}
self.state = SubState::NoSub { dependers: 0 };
}
SubState::RemoteOnly { remote, dependers } => {
if *dependers > 1 {
*dependers -= 1;
break 's;
}
pool.unsubscribe(remote.to_owned());
self.state = SubState::NoSub { dependers: 0 };
}
SubState::Unified { unified, dependers } => {
if *dependers > 1 {
*dependers -= 1;
break 's;
}
pool.unsubscribe(unified.remote.to_owned());
if let Err(e) = ndb.unsubscribe(unified.local) {
tracing::error!("could not unsub ndb: {e}");
self.state = SubState::LocalOnly {
local: unified.local,
dependers: *dependers,
}
} else {
self.state = SubState::NoSub { dependers: 0 };
}
} else {
self.state = SubState::NoSub {
dependers: *dependers,
};
}
}
}
tracing::info!(
"TimelineSub::unsubscribe_or_decrement: {:?} => {:?}",
before,
self.state
);
}
pub fn get_filter(&self) -> Option<&Vec<Filter>> {