From 24585f042a714d50c84048eb1a3e6e7396a60179 Mon Sep 17 00:00:00 2001 From: sidneychang <2190206983@qq.com> Date: Thu, 4 Sep 2025 11:14:08 +0800 Subject: [PATCH] macos_session: add with_writer for macOS macos_session originally lacked the `with_writer` API. This commit ports the implementation from `linux_session` to provide a consistent interface across platforms. --- src/transport/fusedev/macos_session.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/transport/fusedev/macos_session.rs b/src/transport/fusedev/macos_session.rs index fa786ebc..af86669f 100644 --- a/src/transport/fusedev/macos_session.rs +++ b/src/transport/fusedev/macos_session.rs @@ -189,6 +189,19 @@ impl FuseSession { } } + /// Create a new fuse message writer and pass it to the given closure. + pub fn with_writer(&mut self, f: F) + where + F: FnOnce(FuseDevWriter), + { + if let Some(file) = &self.file { + let fd = file.as_raw_fd(); + let mut buf = vec![0x0u8; self.bufsize]; + let writer = FuseDevWriter::new(fd, &mut buf).unwrap(); + f(writer); + } + } + /// Wake channel loop /// After macfuse unmount, read will throw ENODEV /// So wakers is no need for macfuse to interrupt channel