[ 
https://issues.apache.org/jira/browse/THRIFT-2069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ben Craig updated THRIFT-2069:
------------------------------

    Attachment: overlapped_pipes.patch

This is a hefty patch.  It is pretty much a complete rewrite of the pipe code.  

Cases that require "eager" overlapped I/O requests now send those requests to a 
singleton thread.  This is to avoid issue 3. mentioned above, where an exiting 
thread that owns an I/O operations would cause all sorts of havoc.

I'm glad to take any extra feedback on this approach.  It is pretty complicated.
                
> TPipeServer creates overlapped pipes, then uses synchronous I/O on them with 
> TPipe
> ----------------------------------------------------------------------------------
>
>                 Key: THRIFT-2069
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2069
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 1.0
>         Environment: Windows
>            Reporter: Ben Craig
>            Assignee: Ben Craig
>             Fix For: 1.0
>
>         Attachments: overlapped_pipes.patch
>
>
> The documentation for ReadFile states the following:
> A pointer to an OVERLAPPED structure is required if the hFile parameter was 
> opened with FILE_FLAG_OVERLAPPED, otherwise it can be NULL.
> http://msdn.microsoft.com/en-us/library/windows/desktop/aa365467%28v=vs.85%29.aspx
> In C++'s TPipeServer, we create a named pipe with FILE_FLAG_OVERLAPPED, then 
> create a TPipe with it.  TPipe then calls ReadFile without an overlapped 
> structure.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to