Skip to content

Commit 1176eac

Browse files
committed
filio: Update closefd, closed when close method is called
1 parent 0df3ed5 commit 1176eac

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

tests/snippets/stdlib_io.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,14 @@
2828
fi = FileIO('README.md')
2929
fi.read()
3030
fi.close()
31+
assert fi.closefd
32+
assert fi.closed
33+
3134
with assertRaises(ValueError):
3235
fi.read()
3336

3437
with FileIO('README.md') as fio:
3538
nres = fio.read(1)
3639
assert len(nres) == 1
3740
nres = fio.read(2)
38-
assert len(nres) == 2
41+
assert len(nres) == 2

vm/src/stdlib/io.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,8 @@ fn file_io_close(vm: &VirtualMachine, args: PyFuncArgs) -> PyResult {
460460
unsafe {
461461
kernel32::CloseHandle(raw_handle);
462462
}
463+
vm.set_attr(file_io, "closefd", vm.new_bool(true))?;
464+
vm.set_attr(file_io, "closed", vm.new_bool(true))?;
463465
Ok(vm.ctx.none())
464466
}
465467

@@ -471,6 +473,8 @@ fn file_io_close(vm: &VirtualMachine, args: PyFuncArgs) -> PyResult {
471473
unsafe {
472474
libc::close(raw_fd);
473475
}
476+
vm.set_attr(file_io, "closefd", vm.new_bool(true))?;
477+
vm.set_attr(file_io, "closed", vm.new_bool(true))?;
474478
Ok(vm.ctx.none())
475479
}
476480

0 commit comments

Comments
 (0)