From e7961fa20d01556b2337c7bffbba6e0b92a2f507 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Fri, 8 Jan 2016 19:50:34 +0100 Subject: [PATCH] [mscorlib] Add support for intercepting threadpool work, and use it for Xamarin.iOS/Mac. 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 | 2 +- mcs/build/profiles/monotouch_runtime.make | 1 + mcs/build/profiles/xammac.make | 1 + mcs/build/profiles/xammac_net_4_5.make | 7 ++++++- mcs/class/corlib/Assembly/AssemblyInfo.cs | 16 ++++++++++++++++ 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/external/referencesource b/external/referencesource index e12162bb0f1..af10c8da53c 160000 --- a/external/referencesource +++ b/external/referencesource @@ -1 +1 @@ -Subproject commit e12162bb0f1dfad191c58f913de7d5faf013b84b +Subproject commit af10c8da53c277eebb42c597117560510dfce50c diff --git a/mcs/build/profiles/monotouch_runtime.make b/mcs/build/profiles/monotouch_runtime.make index de74d7d92bf..7e963cb73c0 100644 --- a/mcs/build/profiles/monotouch_runtime.make +++ b/mcs/build/profiles/monotouch_runtime.make @@ -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) \ diff --git a/mcs/build/profiles/xammac.make b/mcs/build/profiles/xammac.make index cbe7d38b210..84a9389d478 100644 --- a/mcs/build/profiles/xammac.make +++ b/mcs/build/profiles/xammac.make @@ -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) \ diff --git a/mcs/build/profiles/xammac_net_4_5.make b/mcs/build/profiles/xammac_net_4_5.make index 3a449bf9681..b64f0a4d93a 100644 --- a/mcs/build/profiles/xammac_net_4_5.make +++ b/mcs/build/profiles/xammac_net_4_5.make @@ -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 diff --git a/mcs/class/corlib/Assembly/AssemblyInfo.cs b/mcs/class/corlib/Assembly/AssemblyInfo.cs index a83741386d1..818dc50039a 100644 --- a/mcs/class/corlib/Assembly/AssemblyInfo.cs +++ b/mcs/class/corlib/Assembly/AssemblyInfo.cs @@ -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")] -- 2.25.1