| 151 | |
| 152 | template <typename DeferredFunc> |
| 153 | auto FileSystemDefer(FileSystem* fs, bool synchronous, DeferredFunc&& func) |
| 154 | -> decltype(DeferNotOk( |
| 155 | fs->io_context().executor()->Submit(func, std::shared_ptr<FileSystem>{}))) { |
| 156 | auto self = fs->shared_from_this(); |
| 157 | if (synchronous) { |
| 158 | return std::forward<DeferredFunc>(func)(std::move(self)); |
| 159 | } |
| 160 | return DeferNotOk(io::internal::SubmitIO( |
| 161 | fs->io_context(), std::forward<DeferredFunc>(func), std::move(self))); |
| 162 | } |
| 163 | |
| 164 | } // namespace |
| 165 |
no test coverage detected