1. 13 9月, 2019 3 次提交
  2. 12 9月, 2019 5 次提交
  3. 11 9月, 2019 9 次提交
  4. 10 9月, 2019 16 次提交
  5. 09 9月, 2019 3 次提交
  6. 07 9月, 2019 2 次提交
    • S
      Fix race conditions in CultureInfo.GetCultureInfoHelper (dotnet/coreclr#26567) · 17be2195
      Stephen Toub 提交于
      The implementation reads the current value of the static cache field and then later overwrites that field with the originally read value.  If ClearCachedData was called in the interim to clear the cached data, this will end up effectively undoing part of that clearing, as it'll end up restoring the previous cache. The fix is to write back the new reference only when we need to, which we could do when we detect it's null.
      
      There's a secondary race condition this fixes as well.  When a name and an altname are used with CultureInfo.GetCurrentCulture(string, string), the implementation was publishig the newly created instance into the dictionary under the lock, but then after the lock was released, it was setting that TextInfo to be read-only.  That provides a window where another thread could see it as non-read-only and mutate it.  The fix is to ensure it's marked as read-only fully before it's published.
      
      As I was doing this, it struck me that the implementation was overly complicated, trying to merge three different code paths for three different callers, presumably to share code, but most of the code ended up not being shared anyway, which just made the code harder to follow for little gain.  So, I split it back out into the three calling functions and removed the helper.
      
      I also changed the locking mechanism.  It had been using a single shared lock to protect all state, but the purpose of the lock is really just to synchronize access to an individual dictionary, so we can just lock on the relevant dictionary.
      
      
      
      Commit migrated from https://github.com/dotnet/coreclr/commit/456afea9fbe721e57986a21eb3b4bb1c9c7e4c56
      17be2195
    • S
      Add a repro for GitHub_26311. (dotnet/coreclr#26553) · a993e6e5
      Sergey Andreenko 提交于
      * Add a repro for GitHub_26311.
      
      Add an IL test that reproduces GitHub_26311 without using external functions and stress modes.
      The test uses tail call opcode to force tail call to VSD over generic class via a slow helper.
      
      * Exclude the test for windows x64.
      
      
      Commit migrated from https://github.com/dotnet/coreclr/commit/1416a9c8703be562f3f01ed3da5825e3c3a1c286
      a993e6e5
  7. 06 9月, 2019 2 次提交