Hi Mathew and Sebastian,

Thanks for the ideas.

On the older product there was a reasonable existing code base already built, so we effectively forced the users by deprecating the old select and made them build with the new select.

This is a new product with RTEMS 5 and since I am doing all the early work, I can force a compiler build option with the -DFD_SETSIZE=500so this is probably the direction we will go, that way all the users will end up with this define when they build their apps.

regards,

Ian Caddy


On 21/11/2018 3:00 pm, Sebastian Huber wrote:
Hello Ian,

the file descriptors use now reference counting. In case you use a closed file descriptor you get an error. The file descriptor list order was changed to keep closed file descriptors as long as possible in the closed state to improve the detection of a use after close.

In case you plan to switch to libbsd for networking, then using kqueue() instead of select() is an option.

A quick and dirty hack would be to patch Newlib and set FD_SETSIZE to your desired value.

If you have all your software under control, then you can also define FD_SETSIZE yourself BEFORE you include <sys/select.h>.

You can also dynamically allocate the fd_set depending on rtems_libio_number_iops, for example:

https://git.rtems.org/rtems-libbsd/commit/?id=4d8f9e62615d86a4f2d9b438da8276988277602f https://git.rtems.org/rtems-libbsd/commit/?id=8ee0aa19cfc228a962d084bee805cb20bcd70f3b https://git.rtems.org/rtems-libbsd/commit/?id=7ec4d8760dd98e647977fae76749609a81bdf6d2

I think we should mention this in the release notes.

_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users

Reply via email to