1. Mar 10, 2020
  2. Mar 04, 2020
  3. Feb 28, 2020
  4. Feb 27, 2020
  5. Feb 26, 2020
  6. Feb 25, 2020
  7. Feb 20, 2020
  8. Feb 17, 2020
  9. Feb 14, 2020
  10. Feb 10, 2020
  11. Jan 31, 2020
  12. Jan 30, 2020
  13. Jan 28, 2020
  14. Jan 25, 2020
  15. Jan 24, 2020
  16. Jan 23, 2020
    • Szymon Romik's avatar
      Merge pull request #613 from igchor/stable-1.8-hash_map_erase_fix · 6ab2d17d
      Szymon Romik authored
      Backport hash map erase fix to stable 1.8
      6ab2d17d
    • Igor Chorazewicz's avatar
      d630ba85
    • Igor Chorazewicz's avatar
      concurrent_hash_map: fix possible deadlock in erase · 5b7527b0
      Igor Chorazewicz authored
      Consider the following scenario (where A and B are in the same bucket):
      thread 1:		thread 2:
      find(acc1, A)
      			erase(A)
      find(acc2, B)
      
      First, thread 1 takes lock on the bucket and then on element A.
      Then, thread 2 takes a lock on the bucket and tries to lock element A
      but it can't because thread 1 already locked it - this way thread 2 is blocked.
      Next, thread 1 tries to lock the bucket but it can't because thread 2 holds it.
      Neither thread can progress.
      
      This patch fixes that by introducing the same algorithm as in lookup/insert.
      When trying to lock element in erase we now spin in a loop doing try_acquire and
      if we do not succeed after specified amount of time we drop bucket lock and try
      whole operation again.
      5b7527b0
  17. Jan 14, 2020
  18. Jan 10, 2020
  19. Jan 03, 2020