Drop autoloading of CancelSynchronousIo

This commit is contained in:
Corinna Vinschen 2015-12-15 16:39:08 +01:00
parent 67fd2101ab
commit 450b2dc8ed
2 changed files with 6 additions and 9 deletions

View File

@ -577,7 +577,6 @@ LoadDLLfunc (GetUdpTable, 12, iphlpapi)
LoadDLLfunc (if_indextoname, 8, iphlpapi)
LoadDLLfunc (if_nametoindex, 4, iphlpapi)
LoadDLLfuncEx (CancelSynchronousIo, 4, kernel32, 1)
LoadDLLfunc (CreateSymbolicLinkW, 12, kernel32)
LoadDLLfuncEx2 (DiscardVirtualMemory, 8, kernel32, 1, 127)
LoadDLLfuncEx (GetLogicalProcessorInformationEx, 12, kernel32, 1)

View File

@ -2006,14 +2006,12 @@ fhandler_disk_file::mand_lock (int a_op, struct flock *fl)
thr->detach ();
break;
default:
/* Signal arrived. */
/* Starting with Vista, CancelSynchronousIo works, and we wait
for the thread to exit. lp.status will be either
STATUS_SUCCESS, or STATUS_CANCELLED. We only call
NtUnlockFile in the first case.
Prior to Vista, CancelSynchronousIo doesn't exist, so we
terminated the thread and always call NtUnlockFile since
lp.status was 0 to begin with. */
/* Signal arrived.
If CancelSynchronousIo works we wait for the thread to exit.
lp.status will be either STATUS_SUCCESS, or STATUS_CANCELLED.
We only call NtUnlockFile in the first case.
If CancelSynchronousIo fails we terminated the thread and
call NtUnlockFile since lp.status was 0 to begin with. */
if (CancelSynchronousIo (thr->thread_handle ()))
thr->detach ();
else