| 588 | |
| 589 | @asyncio.coroutine |
| 590 | def read(self): |
| 591 | result = yield from super().read() |
| 592 | |
| 593 | if self._stream.paused: |
| 594 | if self._size < self._limit: |
| 595 | try: |
| 596 | self._stream.transport.resume_reading() |
| 597 | except (AttributeError, NotImplementedError): |
| 598 | pass |
| 599 | else: |
| 600 | self._stream.paused = False |
| 601 | else: |
| 602 | if self._size > self._limit: |
| 603 | try: |
| 604 | self._stream.transport.pause_reading() |
| 605 | except (AttributeError, NotImplementedError): |
| 606 | pass |
| 607 | else: |
| 608 | self._stream.paused = True |
| 609 | |
| 610 | return result |
| 611 | |
| 612 | |
| 613 | class FlowControlChunksQueue(FlowControlDataQueue): |