1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2026-01-06 09:41:07 +01:00

Toby Peterson: 21083: RLIMIT_AS and RLIMIT_RSS are the same in Mac OX X

ut_name needs to be ut_user in struct utmpx
This commit is contained in:
Peter Stephenson 2005-04-04 10:00:25 +00:00
parent 6df44faf12
commit f12ca5fd8e
4 changed files with 41 additions and 6 deletions

View file

@ -1,5 +1,8 @@
2005-04-04 Peter Stephenson <pws@csr.com>
* Toby Peterson: 21083: On Mac OS X 10.4, the AS and RSS rlimits
are the same. Also utmpx doesn't have ut_name.
* Dan Nelson: 21082: Src/exec.c, Test/A01grammar.ztst: fix zsh -c
exit status on parse error.

View file

@ -242,7 +242,7 @@ printulimit(char *nam, int lim, int hard, int head)
# endif /* HAVE_RLIMIT_MEMLOCK */
/* If RLIMIT_VMEM and RLIMIT_RSS are defined and equal, avoid *
* duplicate case statement. Observed on QNX Neutrino 6.1.0. */
# if defined(HAVE_RLIMIT_RSS) && !defined(RLIMIT_VMEM_IS_RSS)
# if defined(HAVE_RLIMIT_RSS) && !defined(RLIMIT_VMEM_IS_RSS) && !defined(RLIMIT_RSS_IS_AS)
case RLIMIT_RSS:
if (head)
printf("-m: resident set size (kbytes) ");
@ -834,7 +834,7 @@ bin_ulimit(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
case RLIMIT_VMEM:
# endif /* HAVE_RLIMIT_VMEM */
/* ditto RLIMIT_VMEM and RLIMIT_AS */
# if defined(HAVE_RLIMIT_AS) && !defined(RLIMIT_VMEM_IS_AS)
# if defined(HAVE_RLIMIT_AS) && !defined(RLIMIT_VMEM_IS_AS) && !defined(RLIMIT_RSS_IS_AS)
case RLIMIT_AS:
# endif /* HAVE_RLIMIT_AS */
# ifdef HAVE_RLIMIT_AIO_MEM

View file

@ -103,6 +103,9 @@
# ifdef HAVE_STRUCT_UTMPX_UT_HOST
# define WATCH_UTMP_UT_HOST 1
# endif
# ifdef __APPLE__
# define ut_name ut_user
# endif
#endif
#if !defined(WATCH_STRUCT_UTMP) && defined(HAVE_STRUCT_UTMP) && defined(REAL_UTMP_FILE)
@ -491,8 +494,6 @@ dowatch(void)
int uct, wct;
s = watch;
if (!(fmt = getsparam("WATCHFMT")))
fmt = DEFAULT_WATCHFMT;
holdintr();
if (!wtab) {
@ -542,6 +543,9 @@ dowatch(void)
free(utab);
return;
}
queue_signals();
if (!(fmt = getsparam("WATCHFMT")))
fmt = DEFAULT_WATCHFMT;
while ((uct || wct) && !errflag)
if (!uct || (wct && ucmp(uptr, wptr) > 0))
wct--, watchlog(0, wptr++, s, fmt);
@ -549,6 +553,7 @@ dowatch(void)
uct--, watchlog(1, uptr++, s, fmt);
else
uptr++, wptr++, wct--, uct--;
unqueue_signals();
free(wtab);
wtab = utab;
wtabsz = utabsz;
@ -557,7 +562,7 @@ dowatch(void)
/**/
int
bin_log(char *nam, char **argv, char *ops, int func)
bin_log(UNUSED(char *nam), UNUSED(char **argv), UNUSED(Options ops), UNUSED(int func))
{
if (!watch)
return 1;
@ -579,7 +584,7 @@ void dowatch(void)
/**/
int
bin_log(char *nam, char **argv, char *ops, int func)
bin_log(char *nam, char **argv, Options ops, int func)
{
return bin_notavail(nam, argv, ops, func);
}

View file

@ -1501,6 +1501,33 @@ if test $zsh_cv_rlimit_vmem_is_as = yes; then
fi
AH_TEMPLATE([RLIMIT_RSS_IS_AS],
[Define to 1 if RLIMIT_RSS and RLIMIT_AS both exist and are equal.])
AC_CACHE_CHECK(if RLIMIT_RSS and RLIMIT_AS are the same,
zsh_cv_rlimit_rss_is_as,
[AC_TRY_RUN([
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
int main()
{
int ret = 1;
#if defined(HAVE_RLIMIT_RSS) && defined(HAVE_RLIMIT_AS)
if (RLIMIT_AS == RLIMIT_RSS) ret = 0;
#endif
return ret;
}],
zsh_cv_rlimit_rss_is_as=yes,
zsh_cv_rlimit_rss_is_as=no,
zsh_cv_rlimit_rss_is_as=no)])
if test $zsh_cv_rlimit_rss_is_as = yes; then
AC_DEFINE(RLIMIT_RSS_IS_AS)
fi
dnl --------------------------------------------
dnl Check for members of struct rusage
dnl --------------------------------------------