Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/Pure/Concurrent/   (Beweissystem der NASA Version 6.0.9©)  Datei vom 16.11.2025 mit Größe 958 B image not shown  

Quellcode-Bibliothek thread_data.ML   Sprache: SML

 
(*  Title:      Pure/Concurrent/thread_data.ML
    Author:     Makarius

Thread-local data -- physical version without context management.
*)


signature THREAD_DATA =
sig
  type 'a var
  val var: unit -> 'a var
  val get: 'a var -> 'option
  val put: 'a var -> 'option -> unit
  val setmp: 'a var -> 'option -> ('b -> 'c) -> 'b -> 'c
  val is_virtual: bool
end;

structure Thread_Data: THREAD_DATA =
struct

abstype 'a var = Var of 'option Universal.tag
with

fun var () : 'a var = Var (Universal.tag ());

fun get (Var tag) =
  (case Thread.Thread.getLocal tag of
    SOME data => data
  | NONE => NONE);

fun put (Var tag) data = Thread.Thread.setLocal (tag, data);

fun setmp v data f x =
  Thread_Attributes.uninterruptible_body (fn run =>
    let
      val orig_data = get v;
      val _ = put v data;
      val result = Exn.capture0 (run f) x;
      val _ = put v orig_data;
    in Exn.release result end);

end;

val is_virtual = false;

end;

90%


¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.0Bemerkung:  (vorverarbeitet)  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.