title: RabbitMQ how pika.adapters.blocking_connection.BlockingConnection.process_data_events works?
body: <p>I'm working with python2.7 and pika 0.10.0 and trying to understand how to use <code>pika.adapters.blocking_connection.BlockingConnection.process_data_events</code> . From the <a href="http://pika.readthedocs.io/en/0.10.0/modules/adapters/blocking.html#pika.adapters.blocking_connection.BlockingConnection.process_data_events" rel="nofollow noreferrer">doc</a>:</p>
  
  <blockquote>
    <p>Will make sure that data events are processed. Dispatches timer and
    channel callbacks if not called from the scope of BlockingConnection
    or BlockingChannel callback. Your app can block on this method.</p>
  </blockquote>
  
  <p>If we also look at the parameter:</p>
  
  <blockquote>
    <p>Parameters: time_limit (float) – suggested upper bound on processing time in
    seconds. The actual blocking time depends on the granularity of the
    underlying ioloop. Zero means return as soon as possible. None means
    there is no limit on processing time and the function will block until
    I/O produces actionalable events. Defaults to 0 for backward
    compatibility. This parameter is NEW in pika 0.10.0.</p>
  </blockquote>
  
  <p>My understanding is that calling <code>process_data_events(time_limit=2)</code> will block for up to 2 seconds, and if in the meanwhile an event occur (e.g. we receive a message on a channel) that event will be processed; if the callback which is called in response to that event takes more than 2 seconds, it will run to completion and <code>process_data_events(time_limit=2)</code> <strong>will return, possible after 2 seconds</strong>.</p>
  
  <p>Is the correct behaviour?</p>