56c56
< releaseEvent(this), dequeueEvent(this), drainManager(NULL)
---
> releaseEvent(this), dequeueEvent(this)
203,206c203,205
< } else if (drainManager) {
< DPRINTF(Drain, "Drainng of SimpleMemory complete\n");
< drainManager->signalDrainDone();
< drainManager = NULL;
---
> } else if (drainState() == DrainState::Draining) {
> DPRINTF(Drain, "Draining of SimpleMemory complete\n");
> signalDrainDone();
236,237c235,236
< unsigned int
< SimpleMemory::drain(DrainManager *dm)
---
> DrainState
> SimpleMemory::drain()
239,241d237
< int count = 0;
<
< // also track our internal queue
243,244d238
< count += 1;
< drainManager = dm;
246,252c240,243
< }
<
< if (count)
< setDrainState(DrainState::Draining);
< else
< setDrainState(DrainState::Drained);
< return count;
---
> return DrainState::Draining;
> } else {
> return DrainState::Drained;
> }