gnu: Update harfbuzz to 0.9.20.
[jackhill/guix/guix.git] / gnu / packages / pth.scm
CommitLineData
233e7676
LC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
d373e57e 3;;;
233e7676 4;;; This file is part of GNU Guix.
d373e57e 5;;;
233e7676 6;;; GNU Guix is free software; you can redistribute it and/or modify it
d373e57e
LC
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
233e7676 11;;; GNU Guix is distributed in the hope that it will be useful, but
d373e57e
LC
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
233e7676 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
d373e57e 18
1ffa7090 19(define-module (gnu packages pth)
4a44e743 20 #:use-module (guix licenses)
d373e57e 21 #:use-module (guix packages)
87f5d366 22 #:use-module (guix download)
d373e57e
LC
23 #:use-module (guix build-system gnu))
24
25(define-public pth
26 (package
27 (name "pth")
28 (version "2.0.7")
29 (source
30 (origin
87f5d366 31 (method url-fetch)
0db342a5 32 (uri (string-append "mirror://gnu/pth/pth-" version
d373e57e
LC
33 ".tar.gz"))
34 (sha256
35 (base32
36 "0ckjqw5kz5m30srqi87idj7xhpw6bpki43mj07bazjm2qmh3cdbj"))))
37 (build-system gnu-build-system)
38 (arguments '(#:parallel-build? #f))
39 (home-page "http://www.gnu.org/software/pth")
f50d2669 40 (synopsis "Portable thread library")
d373e57e
LC
41 (description
42 "Pth is a very portable POSIX/ANSI-C based library for Unix
43platforms which provides non-preemptive priority-based scheduling for
44multiple threads of execution (aka ``multithreading'') inside
45event-driven applications. All threads run in the same address space of
46the server application, but each thread has it's own individual
47program-counter, run-time stack, signal mask and errno variable.
48
49The thread scheduling itself is done in a cooperative way, i.e., the
50threads are managed by a priority- and event-based non-preemptive
51scheduler. The intention is that this way one can achieve better
52portability and run-time performance than with preemptive
53scheduling. The event facility allows threads to wait until various
54types of events occur, including pending I/O on file descriptors,
55asynchronous signals, elapsed timers, pending I/O on message ports,
56thread and process termination, and even customized callback functions.
57
58Additionally Pth provides an optional emulation API for POSIX.1c
59threads (\"Pthreads\") which can be used for backward compatibility to
60existing multithreaded applications.")
4a44e743 61 (license lgpl2.1+)))