Fix conservative GC some more.
commit908eddb17900216abb721e0ed7f40ff3a97dbbcd
authorDouglas Katzman <dougk@google.com>
Thu, 20 Apr 2017 01:19:42 +0000 (19 21:19 -0400)
committerDouglas Katzman <dougk@google.com>
Thu, 20 Apr 2017 01:22:08 +0000 (19 21:22 -0400)
tree04f50995f0ae41e553a997d264953cbcd9c7f898
parentb7e536d668c92f5c61611fb65b4260e5e601fb44
Fix conservative GC some more.

- Avoid qsort() - some standard libraries call malloc from qsort,
  which can (and has been observed to) deadlock with a thread that
  is stopped for GC while holding a lock that malloc needs.

- hopscotch_create() call had arguments in the wrong order.

- Choose the better hash function automatically
  if the dumb-but-fast one causes too may collisions.
src/runtime/gc-common.c
src/runtime/gencgc.c
src/runtime/hopscotch.c
src/runtime/hopscotch.h