Actually close files in the WinAPI driver.
This commit is contained in:
parent
df9e9fce3d
commit
51527e77f8
|
@ -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);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue