src/Pure/Concurrent/future.ML
changeset 38236 d8c7be27e01d
parent 37904 332cd0197d34
child 39232 69c6d3e87660
equal deleted inserted replaced
38235:25d6f789618b 38236:d8c7be27e01d
    59   val fulfill: 'a future -> 'a -> unit
    59   val fulfill: 'a future -> 'a -> unit
    60   val interruptible_task: ('a -> 'b) -> 'a -> 'b
    60   val interruptible_task: ('a -> 'b) -> 'a -> 'b
    61   val cancel_group: group -> unit
    61   val cancel_group: group -> unit
    62   val cancel: 'a future -> unit
    62   val cancel: 'a future -> unit
    63   val shutdown: unit -> unit
    63   val shutdown: unit -> unit
    64   val report: (unit -> 'a) -> 'a
    64   val status: (unit -> 'a) -> 'a
    65 end;
    65 end;
    66 
    66 
    67 structure Future: FUTURE =
    67 structure Future: FUTURE =
    68 struct
    68 struct
    69 
    69 
   530      while scheduler_active () do
   530      while scheduler_active () do
   531       (wait scheduler_event; broadcast_work ()))
   531       (wait scheduler_event; broadcast_work ()))
   532   else ();
   532   else ();
   533 
   533 
   534 
   534 
   535 (* report markup *)
   535 (* status markup *)
   536 
   536 
   537 fun report e =
   537 fun status e =
   538   let
   538   let
   539     val _ = Output.status (Markup.markup Markup.forked "");
   539     val _ = Output.status (Markup.markup Markup.forked "");
   540     val x = e ();  (*sic -- report "joined" only for success*)
   540     val x = e ();  (*sic -- report "joined" only for success*)
   541     val _ = Output.status (Markup.markup Markup.joined "");
   541     val _ = Output.status (Markup.markup Markup.joined "");
   542   in x end;
   542   in x end;