Close files involved in file transfers explicitly

This commit is contained in:
hrxi 2019-07-22 21:37:47 +02:00
parent 7fe6dda4c9
commit 308d71b703

View file

@ -269,8 +269,7 @@ public class FileManager : StreamInteractionModule, Object {
} }
OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION); OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION);
yield os.splice_async(input_stream, 0); yield os.splice_async(input_stream, OutputStreamSpliceFlags.CLOSE_SOURCE|OutputStreamSpliceFlags.CLOSE_TARGET);
os.close();
file_transfer.size = (int)file_meta.size; file_transfer.size = (int)file_meta.size;
file_transfer.file_name = file_meta.file_name; file_transfer.file_name = file_meta.file_name;
file_transfer.path = file.get_basename(); file_transfer.path = file.get_basename();
@ -327,8 +326,7 @@ public class FileManager : StreamInteractionModule, Object {
string filename = Random.next_int().to_string("%x") + "_" + file_transfer.file_name; string filename = Random.next_int().to_string("%x") + "_" + file_transfer.file_name;
File file = File.new_for_path(Path.build_filename(get_storage_dir(), filename)); File file = File.new_for_path(Path.build_filename(get_storage_dir(), filename));
OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION); OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION);
yield os.splice_async(file_transfer.input_stream, 0); yield os.splice_async(file_transfer.input_stream, OutputStreamSpliceFlags.CLOSE_SOURCE|OutputStreamSpliceFlags.CLOSE_TARGET);
os.close();
file_transfer.state = FileTransfer.State.COMPLETE; file_transfer.state = FileTransfer.State.COMPLETE;
file_transfer.path = filename; file_transfer.path = filename;
file_transfer.input_stream = yield file.read_async(); file_transfer.input_stream = yield file.read_async();