
Thanks Brad. This is likely what is happening since 2 consecutive calls to io_service.run_one fixed the problem. Note that a single call to io_service.run did NOT fix the problem. I do have follow up questions here: 1. What are internal handlers? 2. Where in boost documentation do we mention internal handlers? 3. Is this internal handler business new to boost asio? The 1.44 version always calls my handler after the call to run_one. If yes, since which version has this been around? 4. In async-read-until my handler will only get called after the 2nd call to io_service.run_one. Are there any indications after io_service.run_one the first time that I need to call the method a second time? 5. What's a clean way to do async-read-until? Calling run_one twice looks genuinely messy. 6. Why does the single call to io_service.run not fix the problem? It too returns 1. Many thanks for all the help here people. Appreciate it. Arpan On Sat, May 25, 2013 at 6:38 PM, Brad Higgins <bhiggins@arbor.net> wrote:
Hi Arpan, Read Marat's response again. The likely issue here is not epoll or asio, but rather with your code trying to use composed operations like async_write() and async_read_until() with io_service.run_one().
4. Marat's code is using io_service.run - why should I not be using run_one?
run_one() will run until the io_service is stopped (and return 0), or until at most 1 completion handler is called (and return 1). As Marat notes, async_read_until() is a composed operation - it may result in multiple async_read_some() operations internally, each with their own completion handler. Since you use run_one(), you haven't allowed async_read_until() to complete in cases in which it needs to call multiple internal handlers.
Any thoughts on debugging or setting epoll options from asio interface to see what is going on?
Use io_service.run(). You can check its return value to see how many handlers it called.
Thanks, Brad
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Regards, Arpan ----------------------------------------------------------------------------------------------------------------- Reality is merely an illusion, albeit a very persistent one.