| 392 | var write_id = write_request_id++; |
| 393 | |
| 394 | var write_lines = function () { |
| 395 | if (write_id !== last_write_id) { |
| 396 | |
| 397 | //Wait for a previous requests |
| 398 | utils.tick(write_lines); |
| 399 | |
| 400 | } else { |
| 401 | last_write_id++; |
| 402 | |
| 403 | var str = utils.dataToString(data, self.options.newline); |
| 404 | var written = self.output_streams[file].write(str); |
| 405 | |
| 406 | if (file !== 'stdout') { |
| 407 | self.bytes_written += str.length; |
| 408 | } |
| 409 | |
| 410 | if (callback) { |
| 411 | if (written) { |
| 412 | callback(); |
| 413 | } else { |
| 414 | self.output_streams[file].on('drain', callback); |
| 415 | } |
| 416 | } |
| 417 | } |
| 418 | }; |
| 419 | write_lines(); |
| 420 | }; |
| 421 | |