code: def test_stack_per_thread(self):
      s = self.cls()
      self.assertEmpty(s)
      s.push(42)
  
      s_len_second_thread = [None]
  
      def second_thread():
          self.assertEmpty(s)
          s.push(666)
          s.push(777)
          s_len_second_thread[0] = len(s)
  
      t = threading.Thread(target=second_thread)
      t.start()
      t.join()
  
      self.assertEqual(s_len_second_thread[0], 2)
      self.assertEqual(s.pop(), 42)
      self.assertEmpty(s)
  
imports: import collections
  import copy
  import pickle
  import threading
  from absl.testing import absltest
  from absl.testing import parameterized
  import cloudpickle
  import dill
  from haiku._src import data_structures
  import jax
  import tree
label_desc: Use image node_id 1 for calling the ThreadLocalStackTest obj's underlying member method code with example usage: obj.test_stack_per_thread() without return types