src/Pure/System/invoke_scala.ML
changeset 66166 c88d1c36c9c3
parent 62505 9e2a65912111
child 70991 f9f7c34b7dd4
equal deleted inserted replaced
66161:c6e9c7d140ff 66166:c88d1c36c9c3
    29 
    29 
    30 fun promise_method name arg =
    30 fun promise_method name arg =
    31   let
    31   let
    32     val id = new_id ();
    32     val id = new_id ();
    33     fun abort () = Output.protocol_message (Markup.cancel_scala id) [];
    33     fun abort () = Output.protocol_message (Markup.cancel_scala id) [];
    34     val promise = Future.promise abort : string future;
    34     val promise = Future.promise_name "invoke_scala" abort : string future;
    35     val _ = Synchronized.change promises (Symtab.update (id, promise));
    35     val _ = Synchronized.change promises (Symtab.update (id, promise));
    36     val _ = Output.protocol_message (Markup.invoke_scala name id) [arg];
    36     val _ = Output.protocol_message (Markup.invoke_scala name id) [arg];
    37   in promise end;
    37   in promise end;
    38 
    38 
    39 fun method name arg = Future.join (promise_method name arg);
    39 fun method name arg = Future.join (promise_method name arg);