elisp: Accepting Output

 
 36.9.4 Accepting Output from Processes
 --------------------------------------
 
 Output from asynchronous subprocesses normally arrives only while Emacs
 is waiting for some sort of external event, such as elapsed time or
 terminal input.  Occasionally it is useful in a Lisp program to
 explicitly permit output to arrive at a specific point, or even to wait
 until output arrives from a process.
 
  -- Function: accept-process-output &optional process seconds millisec
           just-this-one
      This function allows Emacs to read pending output from processes.
      The output is given to their filter functions.  If PROCESS is
      non-‘nil’ then this function does not return until some output has
      been received from PROCESS.
 
      The arguments SECONDS and MILLISEC let you specify timeout periods.
      The former specifies a period measured in seconds and the latter
      specifies one measured in milliseconds.  The two time periods thus
      specified are added together, and ‘accept-process-output’ returns
      after that much time, even if there is no subprocess output.
 
      The argument MILLISEC is obsolete (and should not be used), because
      SECONDS can be floating point to specify waiting a fractional
      number of seconds.  If SECONDS is 0, the function accepts whatever
      output is pending but does not wait.
 
      If PROCESS is a process, and the argument JUST-THIS-ONE is
      non-‘nil’, only output from that process is handled, suspending
      output from other processes until some output has been received
      from that process or the timeout expires.  If JUST-THIS-ONE is an
      integer, also inhibit running timers.  This feature is generally
      not recommended, but may be necessary for specific applications,
      such as speech synthesis.
 
      The function ‘accept-process-output’ returns non-‘nil’ if it got
      output from PROCESS, or from any process if PROCESS is ‘nil’.  It
      returns ‘nil’ if the timeout expired before output arrived.