Begin transfer for an indicated wal segment.
(self, segment)
| 144 | raise val |
| 145 | |
| 146 | def start(self, segment): |
| 147 | """Begin transfer for an indicated wal segment.""" |
| 148 | |
| 149 | if self.closed: |
| 150 | raise UserCritical(msg='attempt to transfer wal after closing', |
| 151 | hint='report a bug') |
| 152 | |
| 153 | g = gevent.Greenlet(self.transferer, segment) |
| 154 | g.link(self._complete_execution) |
| 155 | self.greenlets.add(g) |
| 156 | |
| 157 | # Increment .expect before starting the greenlet, or else a |
| 158 | # very unlucky .join could be fooled as to when pool is |
| 159 | # complete. |
| 160 | self.expect += 1 |
| 161 | |
| 162 | g.start() |
| 163 | |
| 164 | def _complete_execution(self, g): |
| 165 | """Forward any raised exceptions across a channel.""" |