title: What conditions result in an opened, nonblocking named pipe (fifo) being "unavailable" for reads?
body: <p>Situation:</p>
  
  <pre><code>new_pipe = os.open(pipe_path, os.O_RDONLY | os.O_NONBLOCK) # pipe_path points to a FIFO
  data = os.read(new_pipe, 1024)
  </code></pre>
  
  <p>The read occasionally raises errno -11: Resource temporarily unavailable.</p>
  
  <p>When is this error raised? It seems very rare, as the common cases return data:</p>
  
  <ul>
  <li>If no writer has the pipe opened, empty str ('') is returned. </li>
  <li>If the  writer has the pipe opened, but no data is in the fifo, empty str
  ('') is also returned </li>
  <li>And of course if the writer puts data in the fifo, that data will be read.</li>
  </ul>