Code to address requirement 7(a) of IOStreams Roadmap

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Code to address requirement 7(a) of IOStreams Roadmap

Gene Panov
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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Bjorn Reese
On 10/05/2013 01:20 AM, Gene Panov wrote:

>     https://code.google.com/p/async-ostream/

How does it differ from the iostreams in Boost.Asio?


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Gene Panov
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
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Gene Panov
But most importantly, formatting doesn't happen on the calling thread -- it happens on the background instead.
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Bjorn Reese
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
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Gene Panov

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]" <[hidden email]> 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-IOStreams-Roadmap-tp4652450p4652634.html
To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click here.
NAML
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Gene Panov
In reply to this post by Bjorn Reese
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 
?



On Tue, Oct 8, 2013 at 5:25 AM, Bjorn Reese [via Boost] <[hidden email]> 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-IOStreams-Roadmap-tp4652450p4652634.html
To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click here.
NAML

Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Daniel James-2
On 15 October 2013 01:32, Gene Panov <[hidden email]> wrote:
>
> 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.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Bjorn Reese
In reply to this post by Gene Panov
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
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

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.

On Oct 15, 2013 11:30 AM, "Bjorn Reese [via Boost]" <[hidden email]> 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-IOStreams-Roadmap-tp4652450p4653081.html
To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click here.
NAML
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Daniel James-2
On 15 October 2013 10:54, Gene Panov <[hidden email]> wrote:
> 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.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Bjorn Reese
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
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Jonathan Turkanis-2
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<http://www.google.com/url?q=http%3A%2F%2Flists.boost.org%2Fmailman%2Flistinfo.cgi%2Fboost&sa=D&sntz=1&usg=AFQjCNFjCedQZwfMoSwLySrfTN8HsIuBtA>
>

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Gene Panov

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]" <[hidden email]> 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<http://www.google.com/url?q=http%3A%2F%2Flists.boost.org%2Fmailman%2Flistinfo.cgi%2Fboost&sa=D&sntz=1&usg=AFQjCNFjCedQZwfMoSwLySrfTN8HsIuBtA>
>
_______________________________________________
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-IOStreams-Roadmap-tp4652450p4655346.html
To unsubscribe from Code to address requirement 7(a) of IOStreams Roadmap, click here.
NAML
Reply | Threaded
Open this post in threaded view
|

Re: Code to address requirement 7(a) of IOStreams Roadmap

Jeff Flinn-2
In reply to this post by Jonathan Turkanis-2
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



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost