From e15a4484ac5ded9d2b8a52bfe596d6f5cc5670e2 Mon Sep 17 00:00:00 2001 From: corinna Date: Thu, 16 Aug 2001 14:29:21 +0000 Subject: [PATCH] * resource.cc (getrlimit): Return getdtablesize () as current limit on RLIMIT_NOFILE. * syscalls.cc (getdtablesize): Return OPEN_MAX if current dtable size is less than OPEN_MAX, the current dtable size otherwise. * sysconf.cc (sysconf): Return getdtablesize () on _SC_OPEN_MAX. --- winsup/cygwin/ChangeLog | 8 ++++++++ winsup/cygwin/resource.cc | 2 +- winsup/cygwin/syscalls.cc | 2 +- winsup/cygwin/sysconf.cc | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index c3df032d49..aa9c1540f7 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +Thu Aug 16 16:26:00 2001 Corinna Vinschen + + * resource.cc (getrlimit): Return getdtablesize () as current limit + on RLIMIT_NOFILE. + * syscalls.cc (getdtablesize): Return OPEN_MAX if current dtable size + is less than OPEN_MAX, the current dtable size otherwise. + * sysconf.cc (sysconf): Return getdtablesize () on _SC_OPEN_MAX. + Thu Aug 16 16:17:00 2001 Corinna Vinschen * resource.cc (getrlimit): Return OPEN_MAX as current limit diff --git a/winsup/cygwin/resource.cc b/winsup/cygwin/resource.cc index 3ee6c57da3..84ab9feaa2 100644 --- a/winsup/cygwin/resource.cc +++ b/winsup/cygwin/resource.cc @@ -120,7 +120,7 @@ getrlimit (int resource, struct rlimit *rlp) case RLIMIT_STACK: break; case RLIMIT_NOFILE: - rlp->rlim_cur = OPEN_MAX; + rlp->rlim_cur = getdtablesize (); break; case RLIMIT_CORE: rlp->rlim_cur = rlim_core; diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 8e34825e29..936fd596ca 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -1445,7 +1445,7 @@ setdtablesize (int size) extern "C" int getdtablesize () { - return OPEN_MAX; + return cygheap->fdtab.size > OPEN_MAX ? cygheap->fdtab.size : OPEN_MAX; } extern "C" size_t diff --git a/winsup/cygwin/sysconf.cc b/winsup/cygwin/sysconf.cc index 5c930fb221..5ffb037898 100644 --- a/winsup/cygwin/sysconf.cc +++ b/winsup/cygwin/sysconf.cc @@ -33,7 +33,7 @@ sysconf (int in) /* FIXME: what's the right value? _POSIX_ARG_MAX is only 4K */ return 1048576; case _SC_OPEN_MAX: - return OPEN_MAX; + return getdtablesize (); case _SC_PAGESIZE: return getpagesize (); case _SC_CLK_TCK: -- 2.11.0