It shouldn't happen because if _c was zero, it can't be zero again until decrementAndGet is executed, which happens after an onNext call. This is simply the usual queue-drain where only one call is in the inner section.