src/Pure/ML-Systems/polyml_common.ML
changeset 35014 a725ff6ead26
parent 35010 d6e492cea6e4
child 36162 0bd034a80a9a
equal deleted inserted replaced
35013:f3d491658893 35014:a725ff6ead26
     4 *)
     4 *)
     5 
     5 
     6 exception Interrupt = SML90.Interrupt;
     6 exception Interrupt = SML90.Interrupt;
     7 
     7 
     8 use "General/exn.ML";
     8 use "General/exn.ML";
       
     9 use "ML-Systems/single_assignment_polyml.ML";
     9 use "ML-Systems/multithreading.ML";
    10 use "ML-Systems/multithreading.ML";
    10 use "ML-Systems/time_limit.ML";
    11 use "ML-Systems/time_limit.ML";
    11 use "ML-Systems/timing.ML";
    12 use "ML-Systems/timing.ML";
    12 use "ML-Systems/bash.ML";
    13 use "ML-Systems/bash.ML";
    13 use "ML-Systems/ml_pretty.ML";
    14 use "ML-Systems/ml_pretty.ML";
   129         val _ = RunCall.run_call1 RuntimeCalls.POLY_SYS_profiler n;
   130         val _ = RunCall.run_call1 RuntimeCalls.POLY_SYS_profiler n;
   130         val res = Exn.capture f x;
   131         val res = Exn.capture f x;
   131         val _ = RunCall.run_call1 RuntimeCalls.POLY_SYS_profiler 0;
   132         val _ = RunCall.run_call1 RuntimeCalls.POLY_SYS_profiler 0;
   132       in Exn.release res end;
   133       in Exn.release res end;
   133 
   134 
   134 
       
   135 (* magic immutability -- for internal use only! *)
       
   136 
       
   137 fun magic_immutability_mark (r: 'a Unsynchronized.ref) =
       
   138   ignore (RunCall.run_call1 RuntimeCalls.POLY_SYS_lockseg r);
       
   139 
       
   140 fun magic_immutability_test (r: 'a Unsynchronized.ref) =
       
   141   Word8.andb (0wx40, RunCall.run_call1 RuntimeCalls.POLY_SYS_get_flags r) = 0w0;
       
   142