Adding the ability to run GC on a different thread than the one JSContext was created in
Reviewed By: javache Differential Revision: D5121232 fbshipit-source-id: 28df89271c9d3f421ca27cf309ca0d3c756beba2
This commit is contained in:
parent
57bb955ba1
commit
578227d83b
|
@ -37,6 +37,7 @@ JSC_IMPORT JSValueRef JSEvaluateBytecodeBundle(JSContextRef, JSObjectRef, int, J
|
||||||
JSC_IMPORT bool JSSamplingProfilerEnabled();
|
JSC_IMPORT bool JSSamplingProfilerEnabled();
|
||||||
JSC_IMPORT void JSStartSamplingProfilingOnMainJSCThread(JSGlobalContextRef);
|
JSC_IMPORT void JSStartSamplingProfilingOnMainJSCThread(JSGlobalContextRef);
|
||||||
JSC_IMPORT JSValueRef JSPokeSamplingProfiler(JSContextRef);
|
JSC_IMPORT JSValueRef JSPokeSamplingProfiler(JSContextRef);
|
||||||
|
JSC_IMPORT void FBJSContextStartGCTimers(JSContextRef);
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
#import <objc/objc.h>
|
#import <objc/objc.h>
|
||||||
|
@ -64,6 +65,7 @@ struct JSCWrapper {
|
||||||
// JSContext
|
// JSContext
|
||||||
JSC_WRAPPER_METHOD(JSContextGetGlobalContext);
|
JSC_WRAPPER_METHOD(JSContextGetGlobalContext);
|
||||||
JSC_WRAPPER_METHOD(JSContextGetGlobalObject);
|
JSC_WRAPPER_METHOD(JSContextGetGlobalObject);
|
||||||
|
JSC_WRAPPER_METHOD(FBJSContextStartGCTimers);
|
||||||
|
|
||||||
// JSEvaluate
|
// JSEvaluate
|
||||||
JSC_WRAPPER_METHOD(JSEvaluateScript);
|
JSC_WRAPPER_METHOD(JSEvaluateScript);
|
||||||
|
|
|
@ -75,8 +75,9 @@ jsc_poison(JSContextGroupCreate JSContextGroupRelease JSContextGroupRetain
|
||||||
// JSContext
|
// JSContext
|
||||||
#define JSC_JSContextGetGlobalContext(...) __jsc_wrapper(JSContextGetGlobalContext, __VA_ARGS__)
|
#define JSC_JSContextGetGlobalContext(...) __jsc_wrapper(JSContextGetGlobalContext, __VA_ARGS__)
|
||||||
#define JSC_JSContextGetGlobalObject(...) __jsc_wrapper(JSContextGetGlobalObject, __VA_ARGS__)
|
#define JSC_JSContextGetGlobalObject(...) __jsc_wrapper(JSContextGetGlobalObject, __VA_ARGS__)
|
||||||
|
#define JSC_FBJSContextStartGCTimers(...) __jsc_wrapper(FBJSContextStartGCTimers, __VA_ARGS__)
|
||||||
|
|
||||||
jsc_poison(JSContextGetGlobalContext JSContextGetGlobalObject JSContextGetGroup)
|
jsc_poison(JSContextGetGlobalContext JSContextGetGlobalObject JSContextGetGroup FBJSContextStartGCTimers)
|
||||||
|
|
||||||
// JSEvaluate
|
// JSEvaluate
|
||||||
#define JSC_JSEvaluateScript(...) __jsc_wrapper(JSEvaluateScript, __VA_ARGS__)
|
#define JSC_JSEvaluateScript(...) __jsc_wrapper(JSEvaluateScript, __VA_ARGS__)
|
||||||
|
|
|
@ -33,6 +33,8 @@ UNIMPLEMENTED_SYSTEM_JSC_FUNCTION(JSInspectorGetInstance)
|
||||||
|
|
||||||
UNIMPLEMENTED_SYSTEM_JSC_FUNCTION(configureJSCForIOS)
|
UNIMPLEMENTED_SYSTEM_JSC_FUNCTION(configureJSCForIOS)
|
||||||
|
|
||||||
|
UNIMPLEMENTED_SYSTEM_JSC_FUNCTION(FBJSContextStartGCTimers)
|
||||||
|
|
||||||
bool JSSamplingProfilerEnabled() {
|
bool JSSamplingProfilerEnabled() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -56,6 +58,9 @@ const JSCWrapper* systemJSCWrapper() {
|
||||||
|
|
||||||
.JSContextGetGlobalContext = JSContextGetGlobalContext,
|
.JSContextGetGlobalContext = JSContextGetGlobalContext,
|
||||||
.JSContextGetGlobalObject = JSContextGetGlobalObject,
|
.JSContextGetGlobalObject = JSContextGetGlobalObject,
|
||||||
|
.FBJSContextStartGCTimers =
|
||||||
|
(decltype(&FBJSContextStartGCTimers))
|
||||||
|
Unimplemented_FBJSContextStartGCTimers,
|
||||||
|
|
||||||
.JSEvaluateScript = JSEvaluateScript,
|
.JSEvaluateScript = JSEvaluateScript,
|
||||||
.JSEvaluateBytecodeBundle =
|
.JSEvaluateBytecodeBundle =
|
||||||
|
|
Loading…
Reference in New Issue