summary refs log tree commit diff
diff options
context:
space:
mode:
authorOlivier Dion <olivier.dion@polymtl.ca>2022-04-07 09:40:43 -0400
committerLudovic Courtès <ludo@gnu.org>2022-04-12 23:42:40 +0200
commit1885f8035a41b2f92cf904d11506ac105f90a8a9 (patch)
tree183f776e92564c5ab4786256a2485ed524de1c21
parente1f0c88ea221d846b5a533c4dc88e99e953af63e (diff)
downloadguix-1885f8035a41b2f92cf904d11506ac105f90a8a9.tar.gz
gnu: Add librseq.
* gnu/packages/engineering.scm (librseq): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/engineering.scm28
1 files changed, 28 insertions, 0 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 17f554df72..1c945eb07b 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1156,6 +1156,34 @@ libraries.")
     (description "This package contains the official KiCad project and
 worksheet templates.")))
 
+(define-public librseq
+  ;; There's no release.
+  (let ((commit "170f840b498e1aff068b90188727a656111bfc2f")
+        (revision "1"))
+    (package
+      (name "librseq")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/compudj/librseq.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0rdx59y8y9x8cfmmx5gl66gibkzpk3kw5lrrqhrxan8zr37a055y"))))
+      (build-system gnu-build-system)
+      (native-inputs (list autoconf automake libtool))
+      (home-page "https://github.com/compudj/librseq")
+      (synopsis "Userspace library for restartable sequences")
+      (description "A restartable sequence is a critical region delimited by a
+program where if its execution is preempted or interrupted, the kernel will
+divert the program control flow to a defined abort handler.  They are a good
+alternative to atomic operations for critical fast paths and are usually used
+in the context of per-cpu data.  The library offers ABI headers to interface
+with the kernel and various utilities such as per-cpu counters.")
+      (license (list license:lgpl2.1 license:expat)))))
+
 (define-public linsmith
   (package
     (name "linsmith")