Actually close files in the WinAPI driver.

This commit is contained in:
Sönke Ludwig 2018-03-20 21:03:43 +01:00
parent df9e9fce3d
commit 51527e77f8

View file

@ -75,11 +75,9 @@ final class WinAPIEventDriverFiles : EventDriverFiles {
{ {
auto h = idToHandle(file); auto h = idToHandle(file);
auto slot = () @trusted { return &m_core.m_handles[h].file(); } (); auto slot = () @trusted { return &m_core.m_handles[h].file(); } ();
if (slot.read.overlapped.hEvent != INVALID_HANDLE_VALUE) { if (slot.read.overlapped.hEvent != INVALID_HANDLE_VALUE)
slot.read.overlapped.hEvent = slot.write.overlapped.hEvent = INVALID_HANDLE_VALUE; slot.read.overlapped.hEvent = slot.write.overlapped.hEvent = INVALID_HANDLE_VALUE;
} }
}
override ulong getSize(FileFD file) override ulong getSize(FileFD file)
{ {
@ -160,7 +158,7 @@ final class WinAPIEventDriverFiles : EventDriverFiles {
auto h = idToHandle(descriptor); auto h = idToHandle(descriptor);
auto slot = &m_core.m_handles[h]; auto slot = &m_core.m_handles[h];
return slot.releaseRef({ return slot.releaseRef({
close(descriptor); CloseHandle(h);
m_core.discardEvents(&slot.file.read.overlapped, &slot.file.write.overlapped); m_core.discardEvents(&slot.file.read.overlapped, &slot.file.write.overlapped);
m_core.freeSlot(h); m_core.freeSlot(h);
}); });