only call cargo.drain once each time it's drained
Merge pull request #452 from justincy/master

only call cargo.drain once each time it's drained