X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsStartup.c;h=774de72e380cb0c29e6fe9db9069c6fca239c553;hb=1b1190e01d0c65043628d2532988d9b1b4a78384;hp=0ce17fe16f10265fb5f4de7ab89da7cf2122af31;hpb=9ac03f0b59ea5a6274309c6915666f4a79c0cb09;p=ghc-hetmet.git diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index 0ce17fe..774de72 100644 --- a/rts/RtsStartup.c +++ b/rts/RtsStartup.c @@ -330,7 +330,9 @@ hs_add_root(void (*init_root)(void)) { bdescr *bd; nat init_sp; - Capability *cap = &MainCapability; + Capability *cap; + + cap = rts_lock(); if (hs_init_count <= 0) { barf("hs_add_root() must be called after hs_init()"); @@ -357,6 +359,8 @@ hs_add_root(void (*init_root)(void)) // ToDo: make this work in the presence of multiple hs_add_root()s. initProfiling2(); + rts_unlock(cap); + // ditto. #if defined(THREADED_RTS) ioManagerStart();