Code to address requirement 7(a) of IOStreams Roadmap

Colleagues, I posted this before, but didn't get answers to some questions so far. I think I addressed the "output" part of requirement 7(a) from the IOStreams Roadmap: https://svn.boost.org/trac/boost/wiki/IostreamsRoadmap in this library: https://code.google.com/p/async-ostream/ Does anyone mind if I create a patch for Boost.IOStreams to add those five files and ask the maintainer (or volunteers) for feedback? Regards, Gene

On 10/05/2013 01:20 AM, Gene Panov wrote:
How does it differ from the iostreams in Boost.Asio?

Good question, Bjorn. Three main differences from iostreams from Asio: - formatting happens on the background thread which saves most of the latency (for formatted output), - it will never make a kernel call on the calling thread except some extreme contention (which saves latency again), - streams don't have to be associated with sockets. Regards, Gene -- View this message in context: http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... Sent from the Boost - Dev mailing list archive at Nabble.com.

But most importantly, formatting doesn't happen on the calling thread -- it happens on the background instead. -- View this message in context: http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... Sent from the Boost - Dev mailing list archive at Nabble.com.

On 10/05/2013 03:50 PM, Gene Panov wrote:
But most importantly, formatting doesn't happen on the calling thread -- it happens on the background instead.
Thank you for the explanation. Is there any way to use a Boost.Asio thread as the background thread? In other words, is it possible to write a async_ostream::service implementation that wraps a Boost.Asio io_service? My initial impression is that it is possible, but I am not sufficiently familiar with your codebase to be certain. On another note, you may consider using Boost.Chrono for time durations.

Bjorn, that's a good idea. I'll look into this now. I'm sure it's possible to use that thread in some way, but I want to make sure it's possible to do it efficiently. On Oct 8, 2013 5:27 AM, "Bjorn Reese [via Boost]" < ml-node+s2283326n4652634h7@n4.nabble.com> wrote:
On 10/05/2013 03:50 PM, Gene Panov wrote:
But most importantly, formatting doesn't happen on the calling thread -- it happens on the background instead.
Thank you for the explanation.
Is there any way to use a Boost.Asio thread as the background thread? In other words, is it possible to write a async_ostream::service implementation that wraps a Boost.Asio io_service? My initial impression is that it is possible, but I am not sufficiently familiar with your codebase to be certain.
On another note, you may consider using Boost.Chrono for time durations.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
------------------------------ If you reply to this email, your message will be added to the discussion below:
http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click herehttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4652450&code=Z2VuZS5wYW5vdkBnbWFpbC5jb218NDY1MjQ1MHwtMjI1NDc4NTYw . NAMLhttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
-- View this message in context: http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... Sent from the Boost - Dev mailing list archive at Nabble.com.

Bjorn, it worked. Thank you! https://code.google.com/p/async-ostream/ I implemented it so that is runs on the Asio background thread efficiently -- I don't see any loss of speed in the numbers. Again, thanks for your feedback! Colleagues: does it now satisfy the requirements of 7(a) in IOStreams Roadmap https://svn.boost.org/trac/boost/wiki/IostreamsRoadmap ? On Tue, Oct 8, 2013 at 5:25 AM, Bjorn Reese [via Boost] < ml-node+s2283326n4652634h7@n4.nabble.com> wrote:
On 10/05/2013 03:50 PM, Gene Panov wrote:
But most importantly, formatting doesn't happen on the calling thread -- it happens on the background instead.
Thank you for the explanation.
Is there any way to use a Boost.Asio thread as the background thread? In other words, is it possible to write a async_ostream::service implementation that wraps a Boost.Asio io_service? My initial impression is that it is possible, but I am not sufficiently familiar with your codebase to be certain.
On another note, you may consider using Boost.Chrono for time durations.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
------------------------------ If you reply to this email, your message will be added to the discussion below:
http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click herehttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4652450&code=Z2VuZS5wYW5vdkBnbWFpbC5jb218NDY1MjQ1MHwtMjI1NDc4NTYw . NAMLhttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
-- View this message in context: http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... Sent from the Boost - Dev mailing list archive at Nabble.com.

On 15 October 2013 01:32, Gene Panov
Colleagues: does it now satisfy the requirements of 7(a) in IOStreams Roadmap https://svn.boost.org/trac/boost/wiki/IostreamsRoadmap ?
As far as I know, no one is working on that roadmap now.

On 10/15/2013 02:32 AM, Gene Panov wrote:
Bjorn, it worked. Thank you! https://code.google.com/p/async-ostream/ I implemented it so that is runs on the Asio background thread efficiently -- I don't see any loss of speed in the numbers. Again, thanks for your feedback!
Excellent. I would definitely like to see this become part of Boost.Iostreams.
Colleagues: does it now satisfy the requirements of 7(a) in IOStreams Roadmap https://svn.boost.org/trac/boost/wiki/IostreamsRoadmap
The author of Boost.Iostreams has become inactive, which is why your previous inquiries have not been answered. Minor patches can be handled by others, but the async-ostream are probably so large that it requires that a new maintainer takes over Boost.Iostreams.

Daniel and Bjorn, thank you for the feedback! Do you think you can try me as a maintainer in this case? And if you don't like me, I'll try to find someone else. On Oct 15, 2013 11:30 AM, "Bjorn Reese [via Boost]" < ml-node+s2283326n4653081h64@n4.nabble.com> wrote:
On 10/15/2013 02:32 AM, Gene Panov wrote:
Bjorn, it worked. Thank you! https://code.google.com/p/async-ostream/ I implemented it so that is runs on the Asio background thread efficiently -- I don't see any loss of speed in the numbers. Again, thanks for your feedback!
Excellent. I would definitely like to see this become part of Boost.Iostreams.
Colleagues: does it now satisfy the requirements of 7(a) in IOStreams Roadmap https://svn.boost.org/trac/boost/wiki/IostreamsRoadmap
The author of Boost.Iostreams has become inactive, which is why your previous inquiries have not been answered. Minor patches can be handled by others, but the async-ostream are probably so large that it requires that a new maintainer takes over Boost.Iostreams.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
------------------------------ If you reply to this email, your message will be added to the discussion below:
http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click herehttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4652450&code=Z2VuZS5wYW5vdkBnbWFpbC5jb218NDY1MjQ1MHwtMjI1NDc4NTYw . NAMLhttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
-- View this message in context: http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... Sent from the Boost - Dev mailing list archive at Nabble.com.

On 15 October 2013 10:54, Gene Panov
Daniel and Bjorn, thank you for the feedback! Do you think you can try me as a maintainer in this case? And if you don't like me, I'll try to find someone else.
It would be good to have an iostreams maintainer. Although you might need to have an informal review before any significant changes. It's also a bit of an awkward time to start as it looks like we're about to transition to git. Maybe try posting a new thread (with a subject like '[iostreams] new maintainer') to get feedback from other users? There might be people interested in iostreams who aren't reading this.

Hi, Sorry for the month-long delay. I'm taking a look at Gene's code tonight. On Thursday, October 17, 2013 6:12:04 AM UTC-6, Bjorn Reese wrote:
On 10/17/2013 12:31 PM, Daniel James wrote:
It would be good to have an iostreams maintainer. Although you might
FYI, I have contacted Jonathan Turkanis, and he is planning to become active again.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boosthttp://www.google.com/url?q=http%3A%2F%2Flists.boost.org%2Fmailman%2Flistinfo.cgi%2Fboost&sa=D&sntz=1&usg=AFQjCNFjCedQZwfMoSwLySrfTN8HsIuBtA

Jonathan, in the trunk you will also see asynchronous input taken care of (not just output). That's not yet documented online though. On Nov 25, 2013 3:13 AM, "Jonathan Turkanis-2 [via Boost]" < ml-node+s2283326n4655346h79@n4.nabble.com> wrote:
Hi,
Sorry for the month-long delay.
I'm taking a look at Gene's code tonight.
On Thursday, October 17, 2013 6:12:04 AM UTC-6, Bjorn Reese wrote:
On 10/17/2013 12:31 PM, Daniel James wrote:
It would be good to have an iostreams maintainer. Although you might
FYI, I have contacted Jonathan Turkanis, and he is planning to become active again.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost<
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
------------------------------ If you reply to this email, your message will be added to the discussion below:
http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click herehttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4652450&code=Z2VuZS5wYW5vdkBnbWFpbC5jb218NDY1MjQ1MHwtMjI1NDc4NTYw . NAMLhttp://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
-- View this message in context: http://boost.2283326.n4.nabble.com/Code-to-address-requirement-7-a-of-IOStre... Sent from the Boost - Dev mailing list archive at Nabble.com.

On 11/24/2013 9:11 PM, Jonathan Turkanis wrote:
Hi,
Sorry for the month-long delay.
I'm taking a look at Gene's code tonight.
On Thursday, October 17, 2013 6:12:04 AM UTC-6, Bjorn Reese wrote:
On 10/17/2013 12:31 PM, Daniel James wrote:
It would be good to have an iostreams maintainer. Although you might
FYI, I have contacted Jonathan Turkanis, and he is planning to become active again.
Welcome Back! Jeff
participants (5)
-
Bjorn Reese
-
Daniel James
-
Gene Panov
-
Jeff Flinn
-
Jonathan Turkanis