On 6 February 2011 12:03, David Wragg <span dir="ltr">&lt;<a href="mailto:david@rabbitmq.com">david@rabbitmq.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
librabbitmq does not currently support non-blocking operation.<br></blockquote><div><br>Correct, but it permits it.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

As I said, it&#39;s a hack.<br></blockquote><div><br>The alternative is to avoid use of the *_simple_* methods, including amqp_simple_wait_frame, and to read bytes yourself in whatever way you see fit (e.g. using libevent or raw select plus nonblocking sockets) and pass those bytes to amqp_handle_input. You&#39;ll need to do the connection opening and tuning yourself, but once that&#39;s done you&#39;re golden.<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
&gt; Are there examples anywhere of event-driven uses of the RabbitMQ C<br>
&gt; library which send and receive on different channels on the same<br>
&gt; connection based on some kind of external events?<br></blockquote><div><br>Yes: <a href="https://github.com/tonyg/rais/blob/master/src/connection.c#L384-411">https://github.com/tonyg/rais/blob/master/src/connection.c#L384-411</a><br>
<br>Regards,<br>  Tony<br><br></div></div>