File: libpcl.html

package info (click to toggle)
libpcl1 1.12-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,696 kB
  • sloc: sh: 9,812; ansic: 875; makefile: 17
file content (78 lines) | stat: -rw-r--r-- 3,539 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
  <meta http-equiv="Content-Type"
 content="text/html; charset=windows-1252">
  <meta name="Author" content="Davide Libenzi">
  <meta name="Description"
 content="Portable Coroutine Library (PCL) Home Page">
  <meta name="GENERATOR" content="Emacs">
  <meta name="Keywords"
 content="coroutine,portable,pcl,thread,process,context,switch,multithreading,Unix,Posix,SUSv2,setjmp,longjmp,makecontext,swapcontext,sigaltstack">
  <meta name="ProgId" content="FrontPage.Editor.Document">
  <title>Portable Coroutine Library Home Page</title>
</head>
<body
 style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255);">
<p style="font-family: monospace;" align="center"><b>Portable
Coroutine Library (PCL)</b><br>
</p>
<p style="font-family: monospace;" align="left"><br>
The Portable Coroutine Library (PCL) implements the low level
functionality for coroutines. For a definition of the term coroutine
see <u>The
Art of Computer Programming</u> by <u>Donald E. Knuth</u>. Coroutines
are a very simple cooperative multitasking environment where the switch
from one task to another is done explicitly by a function call.
Coroutines are a lot faster than processes or threads switch, since
there is no OS kernel involvement for the operation. Also coroutines
require much less OS resources than processes of threads. The idea of
writing this library started when I was testing Linux <a
 href="http://www.xmailserver.org/linux-patches/nio-improve.html">epoll</a>
functionality and performance. I initially started using the <a
 href="http://www.goron.de/%7Efroese/coro/coro.html">coro</a> library
by
E. Toernig &lt;<a href="mailto:froese@gmx.de">froese@gmx.de</a>&gt; and
I found the library very interesting. It was simple and yet powerful.
The limitations of the <a
 href="http://www.goron.de/%7Efroese/coro/coro.html">coro</a> library
were both non portability and crashes when not used together with
certain versions of <a href="http://gcc.gnu.org/">gcc</a>. So I
decided
to write a new library to address the problems aforementioned by also
taking portable context switching ideas from the <a
 href="http://www.gnu.org/software/pth/">GNU Pth library</a>. This
library is easily portable on almost every Unix system and on Windows.
It can use either the ucontext.h functionalities (
getcontext()/makecontest()/swapcontext() ) or the standard
longjmp()/setjmp().<br>
</p>
<p style="font-family: monospace;" align="center"><br>
<b>Documentation</b>
</p>
<p style="font-family: monospace;" align="left">PCL man
page: <a href="pcl.html">HTML</a>
<a href="pcl.txt">TXT</a> <a href="pcl.ps">PS</a><br>
<br>
</p>
<p style="font-family: monospace;" align="center"><b>Download</b></p>
<p style="font-family: monospace;" align="left">Latest
version : <a href="pcl-1.12.tar.gz">1.12</a></p>
<p style="font-family: monospace;" align="left"> </p>
<p style="font-family: monospace;" align="center"><b>Links</b></p>
<p style="font-family: monospace;" align="left"><a
 href="http://freshmeat.net/projects/libpcl/">FreshMeat
Home Page</a><br>
<a href="http://www.gnu.org/software/pth">GNU Pth library</a><br>
<a href="rse-pmt.pdf">Very nice paper about portable multi-threading</a><br>
</p>
<p style="font-family: monospace;" align="left"><br>
</p>
<p style="font-family: monospace;" align="left"><br>
<a href="davide.html">Back Home</a><br>
</p>
<p style="font-family: monospace;" align="left"><br>
</p>
<p style="font-family: monospace;" align="left"> </p>
</body>
</html>