Please do not use two channel for dependant operations. Reading data from a two channels has precisely zero ordering promises.

So what could happen here is you have an iv, let's call it a.

s.addRebroadcastinv <-a
s.delRebroadcastinv <-a

and the second message is read *first*. This does not do what you want. please use typed messages over the same channel for this.