summaryrefslogtreecommitdiff
path: root/src/gc/gcinterface.h
diff options
context:
space:
mode:
authorSean Gillespie <segilles@microsoft.com>2017-12-12 19:04:07 -0800
committerSean Gillespie <segilles@microsoft.com>2017-12-12 19:04:07 -0800
commit8df01f50ca980ab8840124c74037782f75702032 (patch)
tree67632498038f401758197663622b1f32a4603eeb /src/gc/gcinterface.h
parent3a295a078701f72edc18a4404cab7b7e1bc104c7 (diff)
downloadcoreclr-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.h31
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;