[Issue 268] Bug with SocketSet and classes

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Jul 15 15:04:12 PDT 2007


http://d.puremagic.com/issues/show_bug.cgi?id=268





------- Comment #7 from braddr at puremagic.com  2007-07-15 17:04 -------
The whole SocketSet class looks rather odd to me (given only a few minutes
looking at it).  It's confusing 'max' as a number of sockets that can be added
and the fact that the socket fd value won't necessarily have any relation to
that count.  Other oddities are functions like this:

socket_t* first() { return cast(socket_t*)buf; }
fd_set* _fd_set() { return cast(fd_set*)buf; }   

Treating the same block of memory as two different and incompatible things. 
Does this class even work as it's name suggests?

The proposed change to the constructor doesn't feel right given the arbitrary
value that a socket fd might have.  Using anything other than FD_SETSIZE for
'max' is likely to result in problems.  NFDBITS is simply the number of bits
that fit in a word which doesn't make much sense as a minimum for nbytes.

Really, I'd just ditch the entire concept of a variable size set.  It doesn't
make any sense for unix style select() api's.  For other type of selection
interfaces it might make more sense such as epoll on linux, but there the
actual set is managed inside the kernel, not user space.


-- 



More information about the Digitalmars-d-bugs mailing list