(self, intermediate=False)
| 1733 | return self.segment, self.HEADER_ID_SIZE |
| 1734 | |
| 1735 | def write_commit(self, intermediate=False): |
| 1736 | # Intermediate commits go directly into the current segment - this makes checking their validity more |
| 1737 | # expensive, but is faster and reduces clobber. Final commits go into a new segment. |
| 1738 | fd = self.get_write_fd(want_new=not intermediate, no_new=intermediate) |
| 1739 | if intermediate: |
| 1740 | fd.sync() |
| 1741 | header = self.header_no_crc_fmt.pack(self.header_fmt.size, TAG_COMMIT) |
| 1742 | crc = self.crc_fmt.pack(crc32(header) & 0xFFFFFFFF) |
| 1743 | fd.write(b"".join((crc, header))) |
| 1744 | self.close_segment() |
| 1745 | return self.segment - 1 # close_segment() increments it |
| 1746 | |
| 1747 | |
| 1748 | assert LoggedIO.HEADER_ID_SIZE + LoggedIO.ENTRY_HASH_SIZE == 41 + 8 # see constants.MAX_OBJECT_SIZE |
no test coverage detected