71c71
< _count += obj->drain(&_instance);
---
> _count += obj->dmDrain() == DrainState::Drained ? 0 : 1;
101c101
< obj->drainResume();
---
> obj->dmDrainResume();
162a163,173
> DrainState
> Drainable::dmDrain()
> {
> _drainState = DrainState::Draining;
> _drainState = drain();
> assert(_drainState == DrainState::Draining ||
> _drainState == DrainState::Drained);
>
> return _drainState;
> }
>
164c175
< Drainable::drainResume()
---
> Drainable::dmDrainResume()
165a177,179
> panic_if(_drainState != DrainState::Drained,
> "Trying to resume an object that hasn't been drained\n");
>
166a181
> drainResume();