mirror of
https://github.com/TalAloni/SMBLibrary.git
synced 2025-05-06 21:47:50 +02:00
NTFileStoreTests: Reduce the possibility of a race condition
This commit is contained in:
parent
4b06f74d6e
commit
6232f76f6e
2 changed files with 3 additions and 1 deletions
|
@ -38,6 +38,7 @@ namespace SMBLibrary.Tests
|
|||
NTStatus status = m_fileStore.NotifyChange(out ioRequest, handle, NotifyChangeFilter.FileName | NotifyChangeFilter.LastWrite | NotifyChangeFilter.DirName, false, 8192, OnNotifyChangeCompleted, null);
|
||||
Assert.IsTrue(status == NTStatus.STATUS_PENDING);
|
||||
|
||||
Thread.Sleep(1);
|
||||
m_fileStore.Cancel(ioRequest);
|
||||
m_fileStore.CloseFile(handle);
|
||||
while (m_notifyChangeStatus == null)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2017-2019 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
|
||||
/* Copyright (C) 2017-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
|
||||
*
|
||||
* You can redistribute this program and/or modify it under the terms of
|
||||
* the GNU Lesser Public License as published by the Free Software Foundation,
|
||||
|
@ -403,6 +403,7 @@ namespace SMBLibrary.Win32
|
|||
m_pendingRequests.Add(request);
|
||||
// The request has been added, we can now return STATUS_PENDING.
|
||||
requestAddedEvent.Set();
|
||||
// There is a possibility of race condition if the caller will wait for STATUS_PENDING and then immediate call Cancel, but this scenario is very unlikely.
|
||||
NTStatus status = NtNotifyChangeDirectoryFile((IntPtr)handle, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, out request.IOStatusBlock, buffer, (uint)buffer.Length, completionFilter, watchTree);
|
||||
if (status == NTStatus.STATUS_SUCCESS)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue