projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Keep a maximum of 6 spare worker threads per Capability (#4262)
[ghc-hetmet.git]
/
rts
/
RtsFlags.c
diff --git
a/rts/RtsFlags.c
b/rts/RtsFlags.c
index
5eb7800
..
c11cc3e
100644
(file)
--- a/
rts/RtsFlags.c
+++ b/
rts/RtsFlags.c
@@
-413,7
+413,7
@@
setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[])
char *ghc_rts = getenv("GHCRTS");
if (ghc_rts != NULL) {
char *ghc_rts = getenv("GHCRTS");
if (ghc_rts != NULL) {
- if (rtsOptsEnabled) {
+ if (rtsOptsEnabled != rtsOptsNone) {
splitRtsFlags(ghc_rts, rts_argc, rts_argv);
}
else {
splitRtsFlags(ghc_rts, rts_argc, rts_argv);
}
else {
@@
-438,7
+438,7
@@
setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[])
break;
}
else if (strequal("+RTS", argv[arg])) {
break;
}
else if (strequal("+RTS", argv[arg])) {
- if (rtsOptsEnabled) {
+ if (rtsOptsEnabled != rtsOptsNone) {
mode = RTS;
}
else {
mode = RTS;
}
else {
@@
-450,7
+450,14
@@
setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[])
mode = PGM;
}
else if (mode == RTS && *rts_argc < MAX_RTS_ARGS-1) {
mode = PGM;
}
else if (mode == RTS && *rts_argc < MAX_RTS_ARGS-1) {
- rts_argv[(*rts_argc)++] = argv[arg];
+ if ((rtsOptsEnabled == rtsOptsAll) ||
+ strequal(argv[arg], "--info")) {
+ rts_argv[(*rts_argc)++] = argv[arg];
+ }
+ else {
+ errorBelch("Most RTS options are disabled. Link with -rtsopts to enable them.");
+ stg_exit(EXIT_FAILURE);
+ }
}
else if (mode == PGM) {
argv[(*argc)++] = argv[arg];
}
else if (mode == PGM) {
argv[(*argc)++] = argv[arg];
@@
-547,7
+554,7
@@
error = rtsTrue;
else if (strequal("info",
&rts_argv[arg][2])) {
printRtsInfo();
else if (strequal("info",
&rts_argv[arg][2])) {
printRtsInfo();
- exit(0);
+ stg_exit(0);
}
else {
errorBelch("unknown RTS option: %s",rts_argv[arg]);
}
else {
errorBelch("unknown RTS option: %s",rts_argv[arg]);