MCPcopy Create free account
hub / github.com/wal-e/wal-e / _partial_flush

Method _partial_flush

wal_e/pipebuf.py:227–247  ·  view source on GitHub ↗
(self, max_retain)

Source from the content-addressed store, hash-verified

225 _setup_fd(self._fd)
226
227 def _partial_flush(self, max_retain):
228 byts = self._bd.get_all()
229 cursor = memoryview(byts)
230
231 flushed = False
232 while len(cursor) > max_retain:
233 try:
234 n = os.write(self._fd, cursor)
235 flushed = True
236 cursor = memoryview(cursor)[n:]
237 except EnvironmentError as e:
238 if e.errno in [errno.EAGAIN, errno.EWOULDBLOCK]:
239 gevent.socket.wait_write(self._fd)
240 else:
241 raise
242
243 assert self._bd.byteSz == 0
244 if len(cursor) > 0:
245 self._bd.add(cursor)
246
247 return flushed
248
249 def write(self, data):
250 self._bd.add(data)

Callers 2

writeMethod · 0.95
flushMethod · 0.95

Calls 3

get_allMethod · 0.80
writeMethod · 0.80
addMethod · 0.80

Tested by

no test coverage detected