[mscorlib] Add support for intercepting threadpool work, and use it for Xamarin.iOS...
authorRolf Bjarne Kvinge <rolf@xamarin.com>
Fri, 8 Jan 2016 18:50:34 +0000 (19:50 +0100)
committerRolf Bjarne Kvinge <rolf@xamarin.com>
Mon, 11 Jan 2016 17:13:42 +0000 (18:13 +0100)
This is used to Xamarin.iOS/Mac to wrap threadpool work in an NSAutoreleasePool.

Also open up corlib's internals to Xamarin.iOS/Mac so that the linker
doesn't have to be involved when accessing internal API.

external/referencesource
mcs/build/profiles/monotouch_runtime.make
mcs/build/profiles/xammac.make
mcs/build/profiles/xammac_net_4_5.make
mcs/class/corlib/Assembly/AssemblyInfo.cs

index e12162bb0f1dfad191c58f913de7d5faf013b84b..af10c8da53c277eebb42c597117560510dfce50c 160000 (submodule)
@@ -1 +1 @@
-Subproject commit e12162bb0f1dfad191c58f913de7d5faf013b84b
+Subproject commit af10c8da53c277eebb42c597117560510dfce50c
index de74d7d92bff19bc79b78c3d21e7cf6815abd678..7e963cb73c0e257ef02707a6f868c3259f9bd882 100644 (file)
@@ -27,6 +27,7 @@ PROFILE_MCS_FLAGS = \
        -d:MONOTOUCH \
        -d:DISABLE_REMOTING \
        -d:DISABLE_COM \
+       -d:FEATURE_INTERCEPTABLE_THREADPOOL_CALLBACK \
        -nowarn:1699 \
        -nostdlib \
        -lib:$(topdir)/class/lib/$(PROFILE) \
index cbe7d38b210345b3879f995758d43bd647fba655..84a9389d478fc25b6562b3451b842157cbe3e4c7 100644 (file)
@@ -23,6 +23,7 @@ PROFILE_MCS_FLAGS = \
        -d:MOBILE \
        -d:MOBILE_DYNAMIC \
        -d:XAMMAC \
+       -d:FEATURE_INTERCEPTABLE_THREADPOOL_CALLBACK \
        -nowarn:1699 \
        -nostdlib \
        -lib:$(topdir)/class/lib/$(PROFILE) \
index 3a449bf96814ab9c1666ba2f1a98d6c9c45b401d..b64f0a4d93a7b612c80c05f9d021471ed35500b5 100644 (file)
@@ -1,5 +1,10 @@
 include $(topdir)/build/profiles/net_4_x.make
-PROFILE_MCS_FLAGS += -d:NO_SYSTEM_DRAWING_DEPENDENCY -d:NO_WINFORMS_DEPENDENCY -d:NO_SYSTEM_WEB_DEPENDENCY -d:XAMMAC_4_5
+PROFILE_MCS_FLAGS += \
+       -d:FEATURE_INTERCEPTABLE_THREADPOOL_CALLBACK \
+       -d:NO_SYSTEM_DRAWING_DEPENDENCY \
+       -d:NO_WINFORMS_DEPENDENCY \
+       -d:NO_SYSTEM_WEB_DEPENDENCY \
+       -d:XAMMAC_4_5
 XAMMAC_4_5=1
 NO_WINDOWS_BASE=1
 NO_SYSTEM_WEB_DEPENDENCY=1
index a83741386d1022c3daf27e2c1b59b1d0c241e1c5..818dc50039a6657de1396873df885376f49c4b67 100644 (file)
@@ -82,5 +82,21 @@ using System.Runtime.InteropServices;
 #endif
 [assembly: InternalsVisibleTo ("System.Numerics, PublicKey=00000000000000000400000000000000")]
 
+#if MONOTOUCH
+#if MONOTOUCH_TV
+[assembly: InternalsVisibleTo ("Xamarin.TVOS, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
+#elif MONOTOUCH_WATCH
+[assembly: InternalsVisibleTo ("Xamarin.WatchOS, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
+#else
+[assembly: InternalsVisibleTo ("monotouch, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
+[assembly: InternalsVisibleTo ("Xamarin.iOS, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
+#endif
+#endif
+
+#if XAMMAC || XAMMAC_4_5
+[assembly: InternalsVisibleTo ("XamMac, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
+[assembly: InternalsVisibleTo ("Xamarin.Mac, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
+#endif
+
 [assembly: Guid ("BED7F4EA-1A96-11D2-8F08-00A0C9A6186D")]