diff options
author | Robert Pluim <rpluim@gmail.com> | 2022-05-04 17:09:07 +0200 |
---|---|---|
committer | Robert Pluim <rpluim@gmail.com> | 2022-05-05 19:30:15 +0200 |
commit | 2087e5eb2bf6cfefe74b6b589c215c2144ed9fb0 (patch) | |
tree | 27b4865f176452535ec02666b16331ecf44445d7 /src/sysdep.c | |
parent | aebff74af27157b60a0d6549be718d85a809b985 (diff) | |
download | emacs-feature/more-fds.tar.gz |
Allow the use of poll instead of selectfeature/more-fds
Increase the maximum number of open files allowed to
10 x FD_SETSIZE (which is what poll is limited to on macOS).
* configure.ac (--with-poll): New option, default off, for requesting
'poll' support. Check for "sys/poll.h" header.
(USE_POLL): New variable.
(EMACS_CONFIG_FEATURES): Add USE_POLL.
* etc/NEWS: Document --with-poll.
* src/sysselect.h: New define EMACS_MAX_FD, defaulting to FD_SETSIZE,
for the maximum number of file descriptors Emacs can use.
* src/process.c:
* src/sysdep.c:
* src/nsterm.m (ns_select_1):
(applicationDidFinishLaunching): Use EMACS_MAX_FD instead of
FD_SETSIZE everywhere.
* src/syspoll.h (SYSPOLL_H): New file for definitions related to use
of 'poll'.
* src/sysselect.h [USE_POLL]: Set EMACS_MAX_FD to 10 x FD_SETSIZE.
(emacs_fd_set) [USE_POLL]: New type, used for bitsets of file
descriptors.
(FD_CLR, FD_ISSET, FD_SET, FD_ZERO) [USE_POLL]: Macros for
manipulating bitsets.
[USE_POLL]: Include "syspoll.h".
* src/process.c (fd_sets_to_pollfds) [USE_POLL]: New function.
Converts two 'emacs_fd_set' to an array of 'struct pollfd'
(pollfds_to_fd_sets) [USE_POLL]: New function.
Converts from an array of 'struct pollfd' to two 'emacs_fd_set'.
(timespec_to_timeout) [USE_POLL]: New function, converts a 'struct
timespec' to a timeout in milliseconds.
(emacs_pselect) [USE_POLL]: Replacement for 'pselect' that calls
'poll' and does the appropriate conversions. Does not support
sigmask.
Diffstat (limited to 'src/sysdep.c')
-rw-r--r-- | src/sysdep.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/sysdep.c b/src/sysdep.c index 95295e7e676..5988b35927a 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -777,7 +777,7 @@ restore_signal_handlers (struct save_signal *saved_handlers) } #ifdef USABLE_SIGIO -static int old_fcntl_flags[FD_SETSIZE]; +static int old_fcntl_flags[EMACS_MAX_FD]; #endif void @@ -1079,7 +1079,7 @@ emacs_set_tty (int fd, struct emacs_tty *settings, bool flushp) #ifdef F_SETOWN -static int old_fcntl_owner[FD_SETSIZE]; +static int old_fcntl_owner[EMACS_MAX_FD]; #endif /* F_SETOWN */ /* Initialize the terminal mode on all tty devices that are currently |