def _thread_local_clean
      ids = Thread.list.map &:object_id
      (@_thread_local_threads.keys - ids).each { |key| @_thread_local_threads.delete(key) }
    end
def _thread_local_clean
      ids = Thread.list.map &:object_id
      (@_thread_local_threads.keys - ids).each { |key| @_thread_local_threads.delete(key) }
    end
remove the thread local maps for threads that are no longer active.
 likely to be painful if many threads are running.

 must be called manually; otherwise this object may accumulate lots of garbage
 if it is used from many different threads.