code: def test_response_cache_incomplete_response():
      """
      Tests case where a cache entry is populated after a long time. Any new
      threads attempting to access that entry should sleep until the response
      is ready.
      """
      cache = ResponseCache()
  
      def populate_cache():
          time.sleep(2)
          cache.update_cache(123, 15, "abcdef")
  
      cache.check_cache(123, 15)  # shouldn't block
      t = threading.Thread(target=populate_cache, args=())
      t.start()
      # Should block until other thread populates cache
      assert cache.check_cache(123, 15) == "abcdef"
      t.join()
  
file_path: ray/python/ray/tests/test_response_cache.py
imports: from ray.util.client.common import _id_is_newer, ResponseCache, OrderedResponseCache, INT32_MAX
  import threading
  import time
  import pytest
label_desc: Use image node_id 4 for calling a global function with example usage: test_response_cache_incomplete_response() without return types