148c148
< port(_port), xbar(_xbar), _name(_name), state(IDLE), drainManager(NULL),
---
> port(_port), xbar(_xbar), _name(_name), state(IDLE),
255c255
< } else if (waitingForPeer == NULL && drainManager) {
---
> } else if (waitingForPeer == NULL && drainState() == DrainState::Draining) {
258,260c258
< drainManager->signalDrainDone();
< // Clear the drain event once we're done with it.
< drainManager = NULL;
---
> signalDrainDone();
590,591c588,589
< unsigned int
< BaseXBar::Layer<SrcType,DstType>::drain(DrainManager *dm)
---
> DrainState
> BaseXBar::Layer<SrcType,DstType>::drain()
598,599c596,598
< drainManager = dm;
< return 1;
---
> return DrainState::Draining;
> } else {
> return DrainState::Drained;
601d599
< return 0;