| 450 | this.status('Waiting on output stream(s) to drain..'); |
| 451 | } |
| 452 | var wait_for_drain = function () { |
| 453 | var keep_waiting = false; |
| 454 | for (var i in self.output_streams) { |
| 455 | var stream = self.output_streams[i]; |
| 456 | if (stream._queue) { |
| 457 | if (stream._queue.length === 0) { |
| 458 | stream.end(); |
| 459 | } else { |
| 460 | keep_waiting = true; |
| 461 | } |
| 462 | } else if (stream._writeQueue) { |
| 463 | if (stream._writeQueue.length === 0) { |
| 464 | stream.end(); |
| 465 | } else { |
| 466 | keep_waiting = true; |
| 467 | } |
| 468 | } else { |
| 469 | continue; |
| 470 | } |
| 471 | } |
| 472 | if (keep_waiting) { |
| 473 | setTimeout(wait_for_drain, 100); |
| 474 | } else { |
| 475 | //Done! |
| 476 | callback(); |
| 477 | } |
| 478 | }; |
| 479 | wait_for_drain(); |
| 480 | } |
| 481 | |