src/Pure/ML/ml_init.ML
changeset 72113 2d9e40cfe9af
parent 68918 3a0db30e5d87
child 73384 d21dbfd3d69b
--- a/src/Pure/ML/ml_init.ML	Fri Aug 07 20:19:49 2020 +0200
+++ b/src/Pure/ML/ml_init.ML	Fri Aug 07 20:28:53 2020 +0200
@@ -33,3 +33,19 @@
     if n = 1 then String.str (String.sub (s, i))
     else String.substring (s, i, n);
 end;
+
+(* FIXME workaround for 100% CPU usage in OS.Process.sleep *)
+structure OS =
+struct
+  open OS;
+  structure Process =
+  struct
+    open Process;
+    fun sleep t =
+      let
+        open Thread;
+        val lock = Mutex.mutex ();
+        val cond = ConditionVar.conditionVar ();
+      in ConditionVar.waitUntil (cond, lock, Time.now () + t) end;
+  end;
+end;