Prepare TimeZoneInfo.cs for move to shared partition. (dotnet/coreclr#10606)
authorAtsushi Kanamori <AtsushiKan@users.noreply.github.com>
Fri, 31 Mar 2017 14:20:30 +0000 (07:20 -0700)
committerGitHub <noreply@github.com>
Fri, 31 Mar 2017 14:20:30 +0000 (07:20 -0700)
commitda9bf5f917bcda9c6fedb9a9d18ac0083c914c1d
tree041d970ff72bd3c8c979e32f79715dac3b3087f3
parentf6fe457f9483c614afde7c89f6ae414e476c84b2
Prepare TimeZoneInfo.cs for move to shared partition. (dotnet/coreclr#10606)

(This is the CoreRT side of https://github.com/dotnet/coreclr/pull/10606)

TimeZoneInfo.cs needs no changes but it brings in
another file CurrentTimeZone.cs.

Which drags in yet another file (Hashtable.cs)
which is widely used inside CoreCLR but aside
from this one file, it seems to be stuff that'll
will never be ported over or already has been
ported over sans Hashtable.

So we'll refactor the memoization logic of
CurrentTimeZone.cs into its own partial file
and share the rest. CoreCLR will use continue to use Hashtable.
CoreRT will use ConcurrentUnifier.

And while we're at it, will rename it to
CurrentSystemTimeZone.cs to match the actual class name.

Once we make a corresponding change on the CoreCLR side,
both TimeZone.cs and CurrentSystemTimeZone.cs will
be fully synced and can move to the shared partition.

Commit migrated from https://github.com/dotnet/coreclr/commit/47931672c057514cac0db20534cee6fe89eb8027
src/coreclr/src/mscorlib/System.Private.CoreLib.csproj
src/coreclr/src/mscorlib/src/System/CurrentSystemTimeZone.Cache.cs [new file with mode: 0644]
src/coreclr/src/mscorlib/src/System/CurrentSystemTimeZone.cs [moved from src/coreclr/src/mscorlib/src/System/CurrentTimeZone.cs with 75% similarity]