code: def test_synchronized_functions_in_different_oracle_doesnt_block(
      tmp_path,
  ):
      log = []
  
      class MyOracle(OracleStub):
          @oracle_module.synchronized
          def create_trial(self, tuner_id):
              # Log ID at the beginning.
              log.append(tuner_id)
              time.sleep(0.5)
              # Log ID in the end.
              log.append(tuner_id)
              return super().create_trial(tuner_id)
  
      def thread_function(i):
          oracle = MyOracle(directory=tmp_path)
          oracle.create_trial(tuner_id=str(i))
  
      threads = []
      for i in range(5):
          thread = threading.Thread(target=thread_function, args=(i,))
          threads.append(thread)
          thread.start()
  
      for thread in threads:
          thread.join()
  
      # All threads begin to sleep before anyone ends.
      assert set(log[:5]) == set(log[5:])
  
imports: import datetime
  import threading
  import time
  import numpy
  import pytest
  import keras_tuner
  from keras_tuner.engine import oracle
  from keras_tuner.engine import trial
  from keras_tuner.tuners import gridsearch
label_desc: Use image node_id 20 for calling a global function with example usage: test_synchronized_functions_in_different_oracle_doesnt_block(tmp_path) and returns: super