| 253 | } |
| 254 | |
| 255 | Future<> DoFinish() { |
| 256 | { |
| 257 | std::lock_guard<std::mutex> lg(writer_state_->visitors_mutex); |
| 258 | RETURN_NOT_OK(options_.writer_pre_finish(writer_.get())); |
| 259 | } |
| 260 | return writer_->Finish().Then( |
| 261 | [self = shared_from_this(), writer_post_finish = options_.writer_post_finish]() { |
| 262 | std::lock_guard<std::mutex> lg(self->writer_state_->visitors_mutex); |
| 263 | return writer_post_finish(self->writer_.get()); |
| 264 | }); |
| 265 | } |
| 266 | |
| 267 | const FileSystemDatasetWriteOptions& options_; |
| 268 | const std::shared_ptr<Schema>& schema_; |