aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2002-05-15 15:57:05 +0000
committerRainer Orth <ro@gcc.gnu.org>2002-05-15 15:57:05 +0000
commitd2aa36f5d96ab2a31788516e05b4c1f3cc0503d6 (patch)
treed332f04f2a30f98311a6631da9ffe68b9d528181
parent7bd9b6d491a8ecae045944f6eeba77a98e82d0c1 (diff)
downloadgcc-d2aa36f5d96ab2a31788516e05b4c1f3cc0503d6.zip
gcc-d2aa36f5d96ab2a31788516e05b4c1f3cc0503d6.tar.gz
gcc-d2aa36f5d96ab2a31788516e05b4c1f3cc0503d6.tar.bz2
testsuite_hooks.h (__set_testsuite_memlimit): Retrieve current limits before setting.
* testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Retrieve current limits before setting. From-SVN: r53490
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/testsuite/testsuite_hooks.h10
2 files changed, 14 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index b1bb701..91082c7 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2002-05-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * testsuite/testsuite_hooks.h (__set_testsuite_memlimit):
+ Retrieve current limits before setting.
+
2002-05-15 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/6518
diff --git a/libstdc++-v3/testsuite/testsuite_hooks.h b/libstdc++-v3/testsuite/testsuite_hooks.h
index 08d93d3..eb87d51 100644
--- a/libstdc++-v3/testsuite/testsuite_hooks.h
+++ b/libstdc++-v3/testsuite/testsuite_hooks.h
@@ -81,25 +81,33 @@ void
__set_testsuite_memlimit(float __size = MEMLIMIT_MB)
{
struct rlimit r;
- r.rlim_cur = (rlim_t)(__size * 1048576);
+ rlim_t limit = (rlim_t)(__size * 1048576);
// Heap size, seems to be common.
#if _GLIBCPP_HAVE_MEMLIMIT_DATA
+ getrlimit(RLIMIT_DATA, &r);
+ r.rlim_cur = limit;
setrlimit(RLIMIT_DATA, &r);
#endif
// Resident set size.
#if _GLIBCPP_HAVE_MEMLIMIT_RSS
+ getrlimit(RLIMIT_RSS, &r);
+ r.rlim_cur = limit;
setrlimit(RLIMIT_RSS, &r);
#endif
// Mapped memory (brk + mmap).
#if _GLIBCPP_HAVE_MEMLIMIT_VMEM
+ getrlimit(RLIMIT_VMEM, &r);
+ r.rlim_cur = limit;
setrlimit(RLIMIT_VMEM, &r);
#endif
// Virtual memory.
#if _GLIBCPP_HAVE_MEMLIMIT_AS
+ getrlimit(RLIMIT_AS, &r);
+ r.rlim_cur = limit;
setrlimit(RLIMIT_AS, &r);
#endif
}