code: def inputhook_wx3(context):
      """Run the wx event loop by processing pending events only.
  
      This is like inputhook_wx1, but it keeps processing pending events
      until stdin is ready.  After processing all pending events, a call to
      time.sleep is inserted.  This is needed, otherwise, CPU usage is at 100%.
      This sleep time should be tuned though for best performance.
      """
      app = wx.GetApp()
      if app is not None:
          assert wx.Thread_IsMain()
  
          # The import of wx on Linux sets the handler for signal.SIGINT
          # to 0.  This is a bug in wx or gtk.  We fix by just setting it
          # back to the Python default.
          if not callable(signal.getsignal(signal.SIGINT)):
              signal.signal(signal.SIGINT, signal.default_int_handler)
  
          evtloop = wx.EventLoop()
          ea = wx.EventLoopActivator(evtloop)
          t = clock()
          while not context.input_is_ready():
              while evtloop.Pending():
                  t = clock()
                  evtloop.Dispatch()
              app.ProcessIdle()
              # We need to sleep at this point to keep the idle CPU load
              # low.  However, if sleep to long, GUI response is poor.  As
              # a compromise, we watch how often GUI events are being processed
              # and switch between a short and long sleep time.  Here are some
              # stats useful in helping to tune this.
              # time    CPU load
              # 0.001   13%
              # 0.005   3%
              # 0.01    1.5%
              # 0.05    0.5%
              used_time = clock() - t
              if used_time > 10.0:
                  # print 'Sleep for 1 s'  # dbg
                  time.sleep(1.0)
              elif used_time > 0.1:
                  # Few GUI events coming in, so we can sleep longer
                  # print 'Sleep for 0.05 s'  # dbg
                  time.sleep(0.05)
              else:
                  # Many GUI events coming in, so sleep only very little
                  time.sleep(0.001)
          del ea
      return 0
  
file_path: catboost/contrib/python/ipython/py3/IPython/terminal/pt_inputhooks/wx.py
imports: import sys
  import signal
  import time
  from timeit import default_timer
  import wx
label_desc: Use image node_id 4 for calling a global function with example usage: inputhook_wx3(context) and returns: int