On 03/06/2013 08:30 AM, Rafael Schloming wrote:
On Wed, Mar 6, 2013 at 5:15 AM, Ted Ross <tr...@redhat.com> wrote:

This is exactly right.  The API behaves in a surprising way and causes
reasonable programmers to write programs that don't work. For the sake of
adoption, we should fix this, not merely document it.

This seems like a bit of a leap to me. Have we actually seen anyone
misusing or abusing the API due to this? Mick didn't come across it till I
pointed it out and even then he had to construct an experiment where he's
basically observing the over-the-wire behaviour in order to detect it.

--Rafael


The following code doesn't work:

while (True) {
  wait_for_and_get_next_event(&event);
  pn_messenger_put(event);
}

If I add a send after every put, I'm going to limit my maximum message rate. If I amortize my sends over every N puts, I may have arbitrarily/infinitely high latency on messages if the source of events goes quiet.

I guess I'm questioning the mission of the Messenger API. Which is the more important design goal: general-purpose ease of use, or strict single-threaded asynchrony?

-Ted

Reply via email to