Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: ulimit -a: -r vs -N [was Re: pkgsrc patches for zsh]
On Wed, 25 Jun 2014 13:00:11 +0200
Thomas Klausner <tk@xxxxxxxxxx> wrote:
> On Wed, Jun 25, 2014 at 11:33:35AM +0100, Peter Stephenson wrote:
> > I've added compatibility with sh when NTHR is present and RTPRIO isn't
> > --- which should be just about specific enough that the additional
> > compatibility more than offsets any confusion.
>
> Thanks, but this version doesn't compile since:
> rlimits.c: In function 'printulimit':
> rlimits.c:398:5: error: duplicate case value
> case RLIMIT_NTHR:
> ^
> rlimits.c:379:5: error: previously used here
> case RLIMIT_PTHREAD:
> ^
> *** Error code 1
Right, we'll just have to output for -T only, not -r. As -r's for
compatibility with sh and the zsh documentation mentions -T that's
probably not a problem.
diff --git a/Doc/Zsh/builtins.yo b/Doc/Zsh/builtins.yo
index 9905ab5..dd090d6 100644
--- a/Doc/Zsh/builtins.yo
+++ b/Doc/Zsh/builtins.yo
@@ -1940,6 +1940,9 @@ sitem(tt(-m))(Kilobytes on the size of physical memory.)
sitem(tt(-n))(open file descriptors.)
sitem(tt(-p))(The number of pseudo-terminals.)
sitem(tt(-q))(Bytes in POSIX message queues.)
+sitem(tt(-r))(Maximum real time priority. On some systems where this
+is not available, such as NetBSD, this has the same effect as tt(-T)
+for compatibility with tt(sh).)
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.)
diff --git a/Src/Builtins/rlimits.c b/Src/Builtins/rlimits.c
index 0bcafda..1ab8710 100644
--- a/Src/Builtins/rlimits.c
+++ b/Src/Builtins/rlimits.c
@@ -32,12 +32,17 @@
#if defined(HAVE_GETRLIMIT) && defined(RLIM_INFINITY)
-#ifdef RLIMIT_POSIXLOCKS
+#if defined(HAVE_RLIMIT_POSIXLOCKS) && !defined(HAVE_RLIMIT_LOCKS)
# define RLIMIT_LOCKS RLIMIT_POSIXLOCKS
+# define HAVE_RLIMIT_LOCKS 1
#endif
-#ifdef RLIMIT_NTHR
+#if defined(HAVE_RLIMIT_NTHR) && !defined(HAVE_RLIMIT_PTHREAD)
# define RLIMIT_PTHREAD RLIMIT_NTHR
+# define HAVE_RLIMIT_PTHREAD 1
+# define THREAD_FMT "-T: threads "
+#else
+# define THREAD_FMT "-T: threads per process "
#endif
enum {
@@ -373,7 +378,7 @@ printulimit(char *nam, int lim, int hard, int head)
# ifdef HAVE_RLIMIT_PTHREAD
case RLIMIT_PTHREAD:
if (head)
- printf("-T: threads per process ");
+ printf(THREAD_FMT);
break;
# endif /* HAVE_RLIMIT_PTHREAD */
# ifdef HAVE_RLIMIT_NICE
@@ -860,6 +865,13 @@ bin_ulimit(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
case 'r':
res = RLIMIT_RTPRIO;
break;
+# else
+# ifdef HAVE_RLIMIT_NTHR
+ /* For compatibility with sh on NetBSD */
+ case 'r':
+ res = RLIMIT_NTHR;
+ break;
+# endif /* HAVE_RLIMIT_NTHR */
# endif
# ifdef HAVE_RLIMIT_NPTS
case 'p':
@@ -876,6 +888,11 @@ bin_ulimit(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
res = RLIMIT_KQUEUES;
break;
# endif
+# ifdef HAVE_RLIMIT_PTHREAD
+ case 'T':
+ res = RLIMIT_PTHREAD;
+ break;
+# endif
default:
/* unrecognised limit */
zwarnnam(name, "bad option: -%c", *options);
Messages sorted by:
Reverse Date,
Date,
Thread,
Author