#ifdef THREADED_RTS
RtsFlags.ParFlags.nNodes = 1;
RtsFlags.ParFlags.migrate = rtsTrue;
- RtsFlags.ParFlags.wakeupMigrate = rtsFalse;
RtsFlags.ParFlags.parGcEnabled = 1;
RtsFlags.ParFlags.parGcGen = 0;
RtsFlags.ParFlags.parGcLoadBalancingEnabled = rtsTrue;
" (default: 1, -qb alone turns off load-balancing)",
" -qa Use the OS to set thread affinity (experimental)",
" -qm Don't automatically migrate threads between CPUs",
-" -qw Migrate a thread to the current CPU when it is woken up",
#endif
" --install-signal-handlers=<yes|no>",
" Install signal handlers (default: yes)",
mode = PGM;
}
else if (mode == RTS && *rts_argc < MAX_RTS_ARGS-1) {
- 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) {
+ else if (mode == PGM) {
argv[(*argc)++] = argv[arg];
}
else {
error = rtsTrue;
} else {
- switch(rts_argv[arg][1]) {
+
+ switch(rts_argv[arg][1]) {
+ case '-':
+ if (strequal("info", &rts_argv[arg][2])) {
+ printRtsInfo();
+ stg_exit(0);
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (rtsOptsEnabled != rtsOptsAll)
+ {
+ errorBelch("Most RTS options are disabled. Link with -rtsopts to enable them.");
+ stg_exit(EXIT_FAILURE);
+ }
+
+ switch(rts_argv[arg][1]) {
/* process: general args, then PROFILING-only ones, then
CONCURRENT-only, TICKY-only (same order as defined in
case 'm':
RtsFlags.ParFlags.migrate = rtsFalse;
break;
- case 'w':
- RtsFlags.ParFlags.wakeupMigrate = rtsTrue;
- break;
- default:
+ case 'w':
+ // -qw was removed; accepted for backwards compat
+ break;
+ default:
errorBelch("unknown RTS option: %s",rts_argv[arg]);
error = rtsTrue;
break;