digitalmars.D.bugs - [Issue 5677] New: Calling Socket.select with a timeval hangs using -m64 on linux
- d-bugmail puremagic.com (41/41) Mar 01 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5677
http://d.puremagic.com/issues/show_bug.cgi?id=5677 Summary: Calling Socket.select with a timeval hangs using -m64 on linux Product: D Version: D2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: benshiflet gmail.com Calling Socket.select with a timeval hangs using -m64 on linux (Ubuntu 10.10), but works fine with -m32 (I'm using DMD 2.052). To reproduce, save the following lines to a file (bug.d): import std.stdio, std.socket; void main(string[] args) { writeln("About to call select..."); Socket.select(null, null, null, 2_000_000); // 2s writeln("Select has returned."); } The following correctly returns after 2s: dmd -m32 bug.d && ./bug But the following hangs: dmd -m64 bug.d && ./bug Using strace shows the issue: dmd -m32 bug.d && strace ./bug prints: select(0, NULL, NULL, NULL, {2, 0}) dmd -m64 bug.d && strace ./bug prints: select(0, NULL, NULL, NULL, {2, 140733585617248} Speculation: I believe this happens because std/socket.d defines 'struct timeval' as two ints, whereas druntime/src/core/sys/posix/sys/time.d defines it as (time_t, suseconds_t). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 01 2011