diff options
author | Sean Gillespie <segilles@microsoft.com> | 2017-12-12 19:04:07 -0800 |
---|---|---|
committer | Sean Gillespie <segilles@microsoft.com> | 2017-12-12 19:04:07 -0800 |
commit | 8df01f50ca980ab8840124c74037782f75702032 (patch) | |
tree | 67632498038f401758197663622b1f32a4603eeb /src/gc/gcinterface.h | |
parent | 3a295a078701f72edc18a4404cab7b7e1bc104c7 (diff) | |
download | coreclr-8df01f50ca980ab8840124c74037782f75702032.tar.gz coreclr-8df01f50ca980ab8840124c74037782f75702032.tar.bz2 coreclr-8df01f50ca980ab8840124c74037782f75702032.zip |
Revert "[Local GC] Move knowledge of overlapped I/O objects to the EE through four callbacks (#14982)"
This reverts commit c755e3b7f5d597c8d192675dbaaa337268d93f1c.
Diffstat (limited to 'src/gc/gcinterface.h')
-rw-r--r-- | src/gc/gcinterface.h | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/src/gc/gcinterface.h b/src/gc/gcinterface.h index 138251cb2e..b1d6b8090c 100644 --- a/src/gc/gcinterface.h +++ b/src/gc/gcinterface.h @@ -111,17 +111,6 @@ struct WriteBarrierParameters uint8_t* write_watch_table; }; -// Opaque type for tracking object pointers -#ifndef DACCESS_COMPILE -struct OBJECTHANDLE__ -{ - void* unused; -}; -typedef struct OBJECTHANDLE__* OBJECTHANDLE; -#else -typedef uintptr_t OBJECTHANDLE; -#endif - /* * Scanning callback. */ @@ -404,7 +393,16 @@ typedef void (* fq_scan_fn)(Object** ppObject, ScanContext *pSC, uint32_t dwFlag typedef void (* handle_scan_fn)(Object** pRef, Object* pSec, uint32_t flags, ScanContext* context, bool isDependent); typedef bool (* async_pin_enum_fn)(Object* object, void* context); - +// Opaque type for tracking object pointers +#ifndef DACCESS_COMPILE +struct OBJECTHANDLE__ +{ + void* unused; +}; +typedef struct OBJECTHANDLE__* OBJECTHANDLE; +#else +typedef uintptr_t OBJECTHANDLE; +#endif class IGCHandleStore { public: @@ -421,14 +419,7 @@ public: virtual OBJECTHANDLE CreateDependentHandle(Object* primary, Object* secondary) = 0; - // Relocates async pinned handles from a condemned handle store to the default domain's handle store. - // - // The two callbacks are called when: - // 1. clearIfComplete is called whenever the handle table observes an async pin that is still live. - // The callback gives a chance for the EE to unpin the referents if the overlapped operation is complete. - // 2. setHandle is called whenever the GC has relocated the async pin to a new handle table. The passed-in - // handle is the newly-allocated handle in the default domain that should be assigned to the overlapped object. - virtual void RelocateAsyncPinnedHandles(IGCHandleStore* pTarget, void (*clearIfComplete)(Object*), void (*setHandle)(Object*, OBJECTHANDLE)) = 0; + virtual void RelocateAsyncPinnedHandles(IGCHandleStore* pTarget) = 0; virtual bool EnumerateAsyncPinnedHandles(async_pin_enum_fn callback, void* context) = 0; |