[PATCH v2] user: Mention file descriptor changes
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Sep 1 06:57:21 UTC 2020
---
user/migration/v4_11-to-v5.rst | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/user/migration/v4_11-to-v5.rst b/user/migration/v4_11-to-v5.rst
index d42744d..8016a63 100644
--- a/user/migration/v4_11-to-v5.rst
+++ b/user/migration/v4_11-to-v5.rst
@@ -69,6 +69,23 @@ The directive :c:func:`rtems_clock_get` was removed. See section
`Transition Advice for the Removed rtems_clock_get()` in the
`RTEMS Classic API Guide` for alternatives.
+File Descriptors
+----------------
+
+In RTEMS 5.1, the list of free file descriptors has a LIFO ordering in contrast
+to previous versions where it was a FIFO. This means if an application
+regularly opens and closes files (or sockets) it sees the whole range of file
+descriptors. The reason for this change was to increase the time before file
+descriptors are reused to more likely catch a file descriptor use after close.
+
+This change may surface application issues. If the configured file descriptor
+maximum (``CONFIGURE_MAXIMUM_FILE_DESCRIPTORS``) is greater than the
+``FD_SETSIZE`` defined by Newlib to 64, then calls to ``select()`` are undefined
+behaviour and may corrupt the thread stack. It is possible to define a custom
+``FD_SETSIZE``. The application must ensure that the custom ``FD_SETSIZE`` is
+defined before ``<sys/select.h>`` is included in all modules used by the
+application, for example via a global compiler command line define.
+
Networking
----------
--
2.26.2
More information about the devel
mailing list