MCPcopy Index your code
hub / github.com/rclone/rclone / close

Method close

vfs/write.go:187–213  ·  view source on GitHub ↗

close the file handle returning EBADF if it has been closed already. Must be called with fh.mu held

()

Source from the content-addressed store, hash-verified

185//
186// Must be called with fh.mu held
187func (fh *WriteFileHandle) close() (err error) {
188 if fh.closed {
189 return ECLOSED
190 }
191 fh.closed = true
192 // leave writer open until file is transferred
193 defer func() {
194 fh.file.delWriter(fh)
195 }()
196 // If file not opened and not safe to truncate then leave file intact
197 if !fh.opened && !fh.safeToTruncate() {
198 return nil
199 }
200 if err = fh.openPending(); err != nil {
201 return err
202 }
203 writeCloseErr := fh.pipeWriter.Close()
204 err = <-fh.result
205 if err == nil {
206 fh.file.setObject(fh.o)
207 err = writeCloseErr
208 } else if fh.file.getObject() == nil {
209 // Remove vfs file entry when no object is present
210 _ = fh.file.Remove()
211 }
212 return err
213}
214
215// Close closes the file
216func (fh *WriteFileHandle) Close() error {

Callers 3

CloseMethod · 0.95
FlushMethod · 0.95
ReleaseMethod · 0.95

Calls 7

safeToTruncateMethod · 0.95
openPendingMethod · 0.95
delWriterMethod · 0.80
setObjectMethod · 0.80
getObjectMethod · 0.80
CloseMethod · 0.65
RemoveMethod · 0.65

Tested by

no test coverage detected