[Issue 268] Bug with SocketSet and classes
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Jul 15 15:56:38 PDT 2007
http://d.puremagic.com/issues/show_bug.cgi?id=268
------- Comment #10 from felipe.contreras at gmail.com 2007-07-15 17:56 -------
(In reply to comment #7)
> 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.
>
I agree, max should always be FD_SETSIZE.
/* Maximum number of file descriptors in `fd_set'. */
#define FD_SETSIZE __FD_SETSIZE
--
More information about the Digitalmars-d-bugs
mailing list