Skip to content

Commit

Permalink
protect against races
Browse files Browse the repository at this point in the history
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/fastclass@5924 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
  • Loading branch information
Jacques Garrigue committed Nov 17, 2003
1 parent 1ba38b1 commit 68f5a3f
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions bytecomp/translclass.ml
Expand Up @@ -554,17 +554,18 @@ let transl_class ids cl_id arity pub_meths cl =
ltable table (
lclass (
Lsequence(
lset cached 0 (Lapply(Lvar class_init, [Lvar table])),
lset cached 1 (Lapply(Lvar class_init, [Lvar table])),
Lsequence (
Lapply (oo_prim "init_class", [Lvar table]),
lset cached 1 (Lvar class_init)
(* field 0 must be set last to avoid race conditions *)
lset cached 0 (Lvar class_init)
))))),
make_envs (
if ids = [] then Lapply(lfield cached 0, [lenvs]) else
Lprim(Pmakeblock(0, Immutable),
[Lapply(lfield cached 0, [lenvs]);
lfield cached 1;
[Lapply(lfield cached 1, [lenvs]);
lfield cached 0;
lfield cached 1;
lenvs]))))

(* example:
Expand Down

0 comments on commit 68f5a3f

Please sign in to comment.