fuck my arse... this was so obvious lol. like brooo... you literally hard-coded your childish workflow to only listen twice and then peace out.... mic drop. thats why your poor little SignalC
never got picked up.
lets look at this chunk:
// Selects for signal A and signal C
s.Select(ctx)
s.Select(ctx)
return nil
Thats a whole crime scene right there bro
You told it: "listen two times and then just end life." So yeah. it got signal A, it was happy. then it was like: "cool, ive done my two turns, i'm out, cya" thats why your Signal C went straight into the void.
the actual fix, just loop it
for {
s.Select(ctx)
}
Boom fixed. Your child can now sit around like a good listener forever instead of rage-quitting after two messages.
and youre welcome, honestly this was so easy it hurts my soul, you dropped this baby tier puzzle into my lap, i solved it in five seconds flat, and you dint even pre-thank me?? like come on im out here burning brain cells on "why does my code stop after i tell it to stop" and you dint even throw me a PROPER THANK YOU. Unfuckingbelievable