diff options
author | Jan Kotas <jkotas@microsoft.com> | 2018-06-09 13:39:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-09 13:39:58 -0700 |
commit | 911d332c523848023e3c6564788b72b7f419fca1 (patch) | |
tree | ae979e6b048630ed0393983d14bde5d43942459f /src/vm/win32threadpool.cpp | |
parent | 618f9c2d18e88566ac61f93529bac58123c50cba (diff) | |
download | coreclr-911d332c523848023e3c6564788b72b7f419fca1.tar.gz coreclr-911d332c523848023e3c6564788b72b7f419fca1.tar.bz2 coreclr-911d332c523848023e3c6564788b72b7f419fca1.zip |
Avoid NativeOverlapped pinning by allocating unmanaged memory for it (#18360)
It makes PinnableBufferCache unnecessary
Diffstat (limited to 'src/vm/win32threadpool.cpp')
-rw-r--r-- | src/vm/win32threadpool.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/vm/win32threadpool.cpp b/src/vm/win32threadpool.cpp index 7f9953a0f9..644e2324c6 100644 --- a/src/vm/win32threadpool.cpp +++ b/src/vm/win32threadpool.cpp @@ -1297,7 +1297,6 @@ ThreadpoolMgr::CallbackForInitiateDrainageOfCompletionPortQueue( } FastInterlockAnd(&g_fCompletionPortDrainNeeded, 0); - OverlappedDataObject::FinishCleanup(!fTryNextTime); #endif // !FEATURE_PAL } @@ -3459,7 +3458,9 @@ Top: // abstraction level for managed IO we can remove the IODequeues fired here if (ETW_EVENT_ENABLED(MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER_Context, ThreadPoolIODequeue) && !AreEtwIOQueueEventsSpeciallyHandled((LPOVERLAPPED_COMPLETION_ROUTINE)key) && pOverlapped != NULL) - FireEtwThreadPoolIODequeue(pOverlapped, (BYTE*)pOverlapped - offsetof(OverlappedDataObject, Internal), GetClrInstanceId()); + { + FireEtwThreadPoolIODequeue(pOverlapped, OverlappedDataObject::GetOverlappedForTracing(pOverlapped), GetClrInstanceId()); + } bool enterRetirement; @@ -3766,7 +3767,7 @@ LPOVERLAPPED ThreadpoolMgr::CompletionPortDispatchWorkWithinAppDomain( overlapped = ObjectToOVERLAPPEDDATAREF(OverlappedDataObject::GetOverlapped(lpOverlapped)); } - if (ManagedCallback && (overlapped->GetAppDomainId() == adid)) + if (ManagedCallback) { _ASSERTE(*pKey != 0); // should be a valid function address @@ -3775,7 +3776,6 @@ LPOVERLAPPED ThreadpoolMgr::CompletionPortDispatchWorkWithinAppDomain( //Application Bug. return NULL; } - } else { |