digitalmars.D.bugs - [Issue 5209] New: posix/sys/select.d: FD_ISSET function should return bool
- d-bugmail puremagic.com (23/23) Nov 13 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5209
- d-bugmail puremagic.com (7/7) Nov 13 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5209
- d-bugmail puremagic.com (18/18) Dec 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5209
- d-bugmail puremagic.com (11/11) Dec 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5209
- d-bugmail puremagic.com (19/19) Dec 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5209
- d-bugmail puremagic.com (13/13) Dec 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5209
http://d.puremagic.com/issues/show_bug.cgi?id=5209
Summary: posix/sys/select.d: FD_ISSET function should return
bool
Product: D
Version: D2
Platform: x86_64
OS/Version: Linux
Status: NEW
Severity: major
Priority: P2
Component: druntime
AssignedTo: sean invisibleduck.org
ReportedBy: ibuclaw ubuntu.com
This is how FD_ISSET is defined on Linux
#define __FD_ISSET(d, set) \
((__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d)) != 0)
So druntime should do the same (patch supplied). This is also a blocker for
64bit, where you would get an implicit cast from long to int message.
Regards
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 13 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5209 Created an attachment (id=809) patch for 5209 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 13 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5209
Iain Buclaw <ibuclaw ubuntu.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|major |critical
Bumping priority:
It appears *ONE* of the functions has been changed to a boolean. But what's
utterly worse is that:
extern (D) bool FD_ISSET( int fd, fd_set* fdset )
{
return (fdset.fds_bits[__FDELT( fd )] & __FDMASK( fd )) == 0;
}
should be "!= 0"
Regards
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 21 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5209
Brad Roberts <braddr puremagic.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |braddr puremagic.com
---
Would you do me a favor and write up a block of unit tests for those functions?
I'll apply both together.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 21 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5209
Created an attachment (id=852)
unittest for sys.select
Well the most obvious thing it affects is std.socket;
import std.socket;
unittest
{
SocketSet sset = new SocketSet(24);
// All socket descriptors should not be set before using them.
for (socket_t i = 0; i < sset.max; i++)
{
assert(! sset.isSet(i));
}
}
Is the attached file OK? :~)
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 21 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5209
Brad Roberts <braddr puremagic.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
AssignedTo|sean invisibleduck.org |braddr puremagic.com
---
Checked in both the fix and the unittests in r453 and r454.
Thanks for the patches.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 21 2010









d-bugmail puremagic.com 