Move misc THREAD_LOCALs to RDS_LOCALs
commit63d3c5516e6afa6ccb2d8f3fd75ee9e5232f3078
authorMichael O'Farrell <michaelofarrell@fb.com>
Fri, 2 Nov 2018 22:21:51 +0000 (2 15:21 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Fri, 2 Nov 2018 22:24:12 +0000 (2 15:24 -0700)
tree217d1ec8d67918ac16c6c91a4c11d0a9febd2787
parentb05a9459273239f99bbe5fa76577b591f0813f19
Move misc THREAD_LOCALs to RDS_LOCALs

Summary:
This moves several thread singleton objects to be stored in RDS.  This shows
that migrating is possible without huge performance blow backs.  This change
is perf neutral.

Of particular interest is the iter_table thread local.  We have extremely hot
code checking the existence of mutable iterators.  This required using the
RDS_LOCAL_HOTVALUE api to achieve parity.

Depends on D10494926

Reviewed By: arnabde03

Differential Revision: D9583875

fbshipit-source-id: 200d9f4fa299d1e8a31b0fe236afac45916cf649
hphp/runtime/base/array-iterator-defs.h
hphp/runtime/base/array-iterator.cpp
hphp/runtime/base/array-iterator.h
hphp/runtime/base/program-functions.cpp
hphp/runtime/base/rds-local.h
hphp/util/tls-pod-bag.h