Fix unit tests after fixing gpui model drop semantics

co-authored-by: Antonio Scandurra <antonio@zed.dev>
This commit is contained in:
Max Brunsfeld 2023-04-11 10:58:01 -07:00
parent 42b10044fc
commit 727afae4ff
3 changed files with 10 additions and 11 deletions

View file

@ -63,10 +63,10 @@ pub fn init(http_client: Arc<dyn HttpClient>, server_url: String, cx: &mut AppCo
cx.observe_global::<Settings, _>(move |updater, cx| { cx.observe_global::<Settings, _>(move |updater, cx| {
if cx.global::<Settings>().auto_update { if cx.global::<Settings>().auto_update {
if update_subscription.is_none() { if update_subscription.is_none() {
*(&mut update_subscription) = Some(updater.start_polling(cx)) update_subscription = Some(updater.start_polling(cx))
} }
} else { } else {
(&mut update_subscription).take(); update_subscription.take();
} }
}) })
.detach(); .detach();

View file

@ -1649,11 +1649,13 @@ mod tests {
}, },
); );
drop(subscription1); drop(subscription1);
let _subscription2 = let _subscription2 = client.add_message_handler(
client.add_message_handler(model, move |_, _: TypedEnvelope<proto::Ping>, _, _| { model.clone(),
move |_, _: TypedEnvelope<proto::Ping>, _, _| {
done_tx2.try_send(()).unwrap(); done_tx2.try_send(()).unwrap();
async { Ok(()) } async { Ok(()) }
}); },
);
server.send(proto::Ping {}); server.send(proto::Ping {});
done_rx2.next().await.unwrap(); done_rx2.next().await.unwrap();
} }

View file

@ -15,12 +15,9 @@ pub struct BlinkManager {
impl BlinkManager { impl BlinkManager {
pub fn new(blink_interval: Duration, cx: &mut ModelContext<Self>) -> Self { pub fn new(blink_interval: Duration, cx: &mut ModelContext<Self>) -> Self {
let weak_handle = cx.weak_handle(); cx.observe_global::<Settings, _>(move |this, cx| {
cx.observe_global::<Settings, _>(move |_, cx| { // Make sure we blink the cursors if the setting is re-enabled
if let Some(this) = weak_handle.upgrade(cx) { this.blink_cursors(this.blink_epoch, cx)
// Make sure we blink the cursors if the setting is re-enabled
this.update(cx, |this, cx| this.blink_cursors(this.blink_epoch, cx));
}
}) })
.detach(); .detach();