File tree Expand file tree Collapse file tree 2 files changed +14
-2
lines changed
Expand file tree Collapse file tree 2 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -293,7 +293,8 @@ impl Subscribers {
293293
294294 for ( _id, ( waker, sender) ) in subs. iter ( ) {
295295 let ( tx, rx) = OneShot :: pair ( ) ;
296- if sender. send ( rx) . is_err ( ) {
296+ if let Err ( err) = sender. try_send ( rx) {
297+ error ! ( "send error: {:?}" , err) ;
297298 continue ;
298299 }
299300 subscribers. push ( ( waker. clone ( ) , tx) ) ;
Original file line number Diff line number Diff line change @@ -205,8 +205,19 @@ impl Tree {
205205 let last_value = last_value. map ( IVec :: from) ;
206206
207207 if value == last_value {
208+ // NB: always broadcast event
209+ if let Some ( Some ( res) ) = subscriber_reservation. take ( ) {
210+ let event = subscriber:: Event :: single_update (
211+ self . clone ( ) ,
212+ key. as_ref ( ) . into ( ) ,
213+ value,
214+ ) ;
215+
216+ res. complete ( & event) ;
217+ }
218+
208219 // short-circuit a no-op set or delete
209- return Ok ( Ok ( value ) ) ;
220+ return Ok ( Ok ( last_value ) ) ;
210221 }
211222
212223 let frag = if let Some ( value) = value. clone ( ) {
You can’t perform that action at this time.
0 commit comments