From 811f4f5b4c0e5a58d2aef06f871e1bbd59e2156b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 9 Dec 2016 17:32:38 +0100 Subject: [PATCH] gnu: Add perl-async-interrupt. * gnu/packages/perl.scm (perl-async-interrupt): New variable. --- gnu/packages/perl.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index eee688354a..f80a95f3e0 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Raoul J.P. Bonnal +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -268,6 +269,39 @@ (define-public perl-array-utils list manipulation routines.") (license (package-license perl)))) +(define-public perl-async-interrupt + (package + (name "perl-async-interrupt") + (version "1.21") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/" + "Async-Interrupt-" version ".tar.gz")) + (sha256 + (base32 + "092zs7b72f8q109c3z829nqfgwqghp3nhw44c0gcyhacbb4wgpk3")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-common-sense" ,perl-common-sense))) + (home-page "http://search.cpan.org/dist/Async-Interrupt") + (synopsis "Allow C/XS libraries to interrupt perl asynchronously") + (description + "@code{Async::Interrupt} implements a single feature only of interest +to advanced perl modules, namely asynchronous interruptions (think \"UNIX +signals\", which are very similar). + +Sometimes, modules wish to run code asynchronously (in another thread, +or from a signal handler), and then signal the perl interpreter on +certain events. One common way is to write some data to a pipe and use +an event handling toolkit to watch for I/O events. Another way is to +send a signal. Those methods are slow, and in the case of a pipe, also +not asynchronous - it won't interrupt a running perl interpreter. + +This module implements asynchronous notifications that enable you to +signal running perl code from another thread, asynchronously, and +sometimes even without using a single syscall.") + (license (package-license perl)))) + (define-public perl-autovivification (package (name "perl-autovivification")