thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Geyer (JIRA)" <>
Subject [jira] [Commented] (THRIFT-1690) Sockets and Pipe Handles truncated on Win64
Date Wed, 14 Nov 2012 21:28:12 GMT


Jens Geyer commented on THRIFT-1690:

Regarding "moving the anonymous pipe transport to its own class": I used the C# code to write
the Delphi Version, first version was a nearly 1:1 port. It worked fine so far, but somehow
I was not happy with it.

After three iterations I finally ended up with some more classes, but much smaller ones, the
code became much clearer after I decided to split them up. 

I did that after it became clear to me that there were really two classes merged into one,
causing a lot of the methods being in fact two methods rolled into one: 

if( is_anonymous_case)
  a lot of code
  even more code

However, I do not have enough practice with *NIX platforms yet to be able to give any advice.
I just wanted to mention my experiences with the C# code (and I still think about refactoring
that one as well ... maybe, not today).

> Sockets and Pipe Handles truncated on Win64
> -------------------------------------------
>                 Key: THRIFT-1690
>                 URL:
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.9
>         Environment: 64-bit Windows
>            Reporter: Ben Craig
>            Assignee: Roger Meier
>         Attachments: lib_socket_typedef.patch, libthrift_pipe_size.patch, libthrift_warning_purge.patch
>   Original Estimate: 48h
>  Remaining Estimate: 48h
> On 64-bit Windows, "int" is a 32-bit value.  SOCKET and HANDLE are 64-bit.
> All of the files dealing with sockets in thrift use "int" as the type of a socket, as
this is the idiomatic way to handle sockets on POSIX systems.  For portability, a SOCKET typedef
is probably needed.
> For the Pipe Server and Pipe Transport, HANDLEs are cast to ints to store as member variables
for some reason (maybe to avoid #including <windows.h> in a header?).
> Both of these situations can result in invalid handles being used (and valid handles
being leaked) when the system is under load.

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:

View raw message