X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdocs%2Fcomm%2Fthe-beast%2Ffexport.html;h=956043bafb6aa4f490977026a5765a6e6990cc5c;hb=aab07466b96aaea9dd0705f52491f1ef6945479c;hp=531e93abb3df2aec9ef9f0826cbb3c107ebe30ca;hpb=c65b43c958373a8d38e82255756745141988f9e6;p=ghc-hetmet.git diff --git a/ghc/docs/comm/the-beast/fexport.html b/ghc/docs/comm/the-beast/fexport.html index 531e93a..956043b 100644 --- a/ghc/docs/comm/the-beast/fexport.html +++ b/ghc/docs/comm/the-beast/fexport.html @@ -211,7 +211,15 @@ HsInt Main_d1kv ( StgStablePtr the_stableptr, In short, we can't think of a really satisfactory solution. I'd vote for introducing some kind of OS-thread-local-state and passing it in there, but that introduces complications of its own. - +

+ OS-thread-safety is of concern in the C stubs, whilst + building up the expressions to run. These need to have exclusive + access to the heap whilst allocating in it. Also, there needs to + be some guarantee that no GC will happen in between the + deRefStablePtr call and when rts_eval[IO] + starts running. At the moment there are no guarantees for + either property. This needs to be sorted out before the + implementation can be regarded as fully safe to use.