Subject: [bug#44518] [PATCH v3 16/25] gnu: Add ghc-stm-delay.

From: Romain GARBAGE <[email-masked]>
Date: Mon, 22 Jul 2024 13:28:13 +0200

* gnu/packages/haskell-xyz.scm (ghc-stm-delay): New variable.

Change-Id: If9e20a2c103549de9b4b7d63158fe34165f6036a
---
 gnu/packages/haskell-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 67ced12750..6bdff48b6e 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -11757,6 +11757,31 @@ (define-public ghc-stm-conduit
 source and a sink.")
     (license license:bsd-3)))
 
+(define-public ghc-stm-delay
+  (package
+    (name "ghc-stm-delay")
+    (version "0.1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hackage-uri "stm-delay" version))
+       (sha256
+        (base32 "0cla21v89gcvmr1iwzibq13v1yq02xg4h6k9l6kcprj7mhd5hcmi"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "stm-delay")))
+    (home-page "https://github.com/joeyadams/haskell-stm-delay")
+    (synopsis "Updatable one-shot timer polled with STM")
+    (description
+     "This library lets you create a one-shot timer, poll it using STM, and update it
+to ring at a different time than initially specified. .  It uses GHC event
+manager timeouts when available (GHC 7.2+, @@-threaded@@, non-Windows OS),
+yielding performance similar to @@@code{threadDelay}@@ and
+@@@code{registerDelay}@@.  Otherwise, it falls back to forked threads and
+@@@code{threadDelay}@@. . [0.1.1] Add @code{tryWaitDelayIO}, improve performance
+for certain cases of @@@code{newDelay}@@ and @@@code{updateDelay}@@, and improve
+example.")
+    (license license:bsd-3)))
+
 (define-public ghc-stmonadtrans
   (package
     (name "ghc-stmonadtrans")
-- 
2.45.1