(&self)
| 59 | } |
| 60 | |
| 61 | fn flush(&self) -> Result<(), BufIoError> { |
| 62 | let mut file = self.file.write().map_err(|_| BufIoError::Locking)?; |
| 63 | file.seek(SeekFrom::Start(self.start)) |
| 64 | .map_err(BufIoError::Io)?; |
| 65 | let buffer = self.buffer.read().map_err(|_| BufIoError::Locking)?; |
| 66 | let end = self.end.load(Ordering::SeqCst); |
| 67 | file.write_all(&buffer[..end]).map_err(BufIoError::Io)?; |
| 68 | self.dirty.store(false, Ordering::SeqCst); |
| 69 | Ok(()) |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | impl Drop for BufferRegion { |