Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: assign threads ulimit -T flag like in bash



Currently limiting threads in zsh is done via either -N X maxpthreads or
-r maxthr. However, ulimit -r occupied by two limits: RLIMIT_RTPRIO and
RLIMIT_NTHR. And to make matter worse bash uses -T option letter.

This change renames -r maxthr to -T maxpthread given that maxthr
csh-style limit wasn't documented in the zsh manpage. But maxpthread is
still different name from maxthread in login.conf or threads which tcsh
is going to use (my fault).

-r rt_priority as previously is left undocumented.

---
 Doc/Zsh/builtins.yo      |  4 ++--
 Src/Builtins/rlimits.awk |  2 +-
 Src/Builtins/rlimits.c   | 17 +++++------------
 3 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/Doc/Zsh/builtins.yo b/Doc/Zsh/builtins.yo
index 7927232..4864e21 100644
--- a/Doc/Zsh/builtins.yo
+++ b/Doc/Zsh/builtins.yo
@@ -1897,7 +1897,7 @@ enditem()
 findex(ulimit)
 cindex(resource limits)
 cindex(limits, resource)
-item(tt(ulimit) [ [ tt(-SHacdfiklmnpqrstvwx) | tt(-N) var(resource) [ var(limit) ] ... ])(
+item(tt(ulimit) [ [ tt(-SHacdfiklmnpqsTtvwx) | tt(-N) var(resource) [ var(limit) ] ... ])(
 Set or display resource limits of the shell and the processes started by
 the shell.  The value of var(limit) can be a number in the unit specified
 below or one of the values `tt(unlimited)', which removes the limit on the
@@ -1935,8 +1935,8 @@ sitem(tt(-n))(open file descriptors.)
 sitem(tt(-p))(The number of pseudo-terminals.)
 sitem(tt(-q))(Bytes in POSIX message queues.)
 sitem(tt(-s))(Kilobytes on the size of the stack.)
+sitem(tt(-T))(The number of simultaneous threads available to the user.)
 sitem(tt(-t))(CPU seconds to be used.)
-sitem(tt(-r))(The number of simultaneous threads available to the user.)
 sitem(tt(-u))(The number of processes available to the user.)
 sitem(tt(-v))(Kilobytes on the size of virtual memory.  On some systems this
 refers to the limit called `address space'.)
diff --git a/Src/Builtins/rlimits.awk b/Src/Builtins/rlimits.awk
index b5a25fd..fe2d0e9 100644
--- a/Src/Builtins/rlimits.awk
+++ b/Src/Builtins/rlimits.awk
@@ -42,7 +42,7 @@ BEGIN {limidx = 0}
 	    if (limnam == "MEMLOCK") { msg[limnum] = "Mmemorylocked" }
 	    if (limnam == "NOFILE")  { msg[limnum] = "Ndescriptors" }
 	    if (limnam == "NPROC")   { msg[limnum] = "Nmaxproc" }
-	    if (limnam == "NTHR")    { msg[limnum] = "Nmaxthr" }
+	    if (limnam == "NTHR")    { msg[limnum] = "Nmaxpthreads" }
 	    if (limnam == "OFILE")   { msg[limnum] = "Ndescriptors" }
 	    if (limnam == "PTHREAD") { msg[limnum] = "Nmaxpthreads" }
 	    if (limnam == "RSS")     { msg[limnum] = "Mresident" }
diff --git a/Src/Builtins/rlimits.c b/Src/Builtins/rlimits.c
index e48a1d3..fd4c94a 100644
--- a/Src/Builtins/rlimits.c
+++ b/Src/Builtins/rlimits.c
@@ -36,6 +36,10 @@
 #  define RLIMIT_LOCKS		RLIMIT_POSIXLOCKS
 #endif
 
+#ifdef RLIMIT_NTHR
+#  define RLIMIT_PTHREAD	RLIMIT_NTHR
+#endif
+
 enum {
     ZLIMTYPE_MEMORY,
     ZLIMTYPE_NUMBER,
@@ -318,12 +322,6 @@ printulimit(char *nam, int lim, int hard, int head)
 	    printf("-u: processes                       ");
 	break;
 # endif /* HAVE_RLIMIT_NPROC */
-# ifdef HAVE_RLIMIT_NTHR
-    case RLIMIT_NTHR:
-	if (head)
-	    printf("-r: threads                         ");
-	break;
-#endif /* HAVE_RLIMIT_NTHR */
 # if defined(HAVE_RLIMIT_VMEM) && (!defined(HAVE_RLIMIT_RSS) || !defined(RLIMIT_VMEM_IS_RSS))
     case RLIMIT_VMEM:
 	if (head)
@@ -375,7 +373,7 @@ printulimit(char *nam, int lim, int hard, int head)
 # ifdef HAVE_RLIMIT_PTHREAD
     case RLIMIT_PTHREAD:
 	if (head)
-	    printf("-N %2d: threads per process          ", RLIMIT_PTHREAD);
+	    printf("-T: threads per process             ");
 	break;
 # endif /* HAVE_RLIMIT_PTHREAD */
 # ifdef HAVE_RLIMIT_NICE
@@ -824,11 +822,6 @@ bin_ulimit(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
 		    res = RLIMIT_NOFILE;
 		    break;
 # endif /* HAVE_RLIMIT_NOFILE */
-# ifdef HAVE_RLIMIT_NTHR
-		case 'r':
-		    res = RLIMIT_NTHR;
-		    break;
-# endif /* HAVE_RLIMIT_NTHR */
 # ifdef HAVE_RLIMIT_NPROC
 		case 'u':
 		    res = RLIMIT_NPROC;



Messages sorted by: Reverse Date, Date, Thread, Author