This file is indexed.

/usr/share/doc/libjcsp-java/api/overview-summary.html is in libjcsp-java-doc 1.1-rc4-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_25) on Thu Sep 12 04:39:50 UTC 2013 -->
<title>Overview (CSP for Java (JCSP) 1.1-rc4 API Specification (inc. Network))</title>
<meta name="date" content="2013-09-12">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Overview (CSP for Java (JCSP) 1.1-rc4 API Specification (inc. Network))";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li class="navBarCell1Rev">Overview</li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><b>CSP for Java<br>(JCSP) 1.1-rc4</b></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
<li><a href="overview-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">CSP for Java<sup><font size=\'-2\'>TM</font></sup> (JCSP) 1.1-rc4 API Specification</h1>
</div>
<div class="header">
<div class="subTitle">
<div class="block">This document is the specification for the JCSP core API.</div>
</div>
<p>See: <a href="#overview_description">Description</a></p>
</div>
<div class="contentContainer">
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="org/jcsp/awt/package-summary.html">org.jcsp.awt</a></td>
<td class="colLast">
<div class="block">This provides CSP extensions for all AWT <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt"><code>Component</code></a> components:
GUI events and widget configurations map to channel communications.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="org/jcsp/lang/package-summary.html">org.jcsp.lang</a></td>
<td class="colLast">
<div class="block">This provides classes and interfaces corresponding to the fundamental
primitives of CSP.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="org/jcsp/net/package-summary.html">org.jcsp.net</a></td>
<td class="colLast">
<div class="block">
This is main package for JCSP.NET.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="org/jcsp/net/cns/package-summary.html">org.jcsp.net.cns</a></td>
<td class="colLast">
<div class="block">
This package contains the files specifically for the
JCSP.NET Channel Name Service (CNS).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="org/jcsp/net/dynamic/package-summary.html">org.jcsp.net.dynamic</a></td>
<td class="colLast">
<div class="block">Supports dynamic operations over the JCSP.NET infrastructure.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="org/jcsp/net/remote/package-summary.html">org.jcsp.net.remote</a></td>
<td class="colLast">
<div class="block">Supports the remote spawning of processes at other nodes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="org/jcsp/net/security/package-summary.html">org.jcsp.net.security</a></td>
<td class="colLast">
<div class="block">This package contains the files specifically for link security implementing various authentication schemes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="org/jcsp/net/settings/package-summary.html">org.jcsp.net.settings</a></td>
<td class="colLast">
<div class="block">This package is used internally by the JCSP network infrastructure to load XML configuration files and
represent their structure.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="org/jcsp/net/tcpip/package-summary.html">org.jcsp.net.tcpip</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="org/jcsp/plugNplay/package-summary.html">org.jcsp.plugNplay</a></td>
<td class="colLast">
<div class="block">This provides an assortment of <I>plug-and-play</I> CSP components to wire together
(with <TT>Object</TT>-carrying wires) and reuse.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="org/jcsp/plugNplay/ints/package-summary.html">org.jcsp.plugNplay.ints</a></td>
<td class="colLast">
<div class="block">This provides an assortment of <I>plug-and-play</I> CSP components to wire together
(with <TT>int</TT>-carrying wires) and reuse.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="org/jcsp/util/package-summary.html">org.jcsp.util</a></td>
<td class="colLast">
<div class="block">This provides classes and interfaces to customise the semantics of <TT>Object</TT>
channels.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="org/jcsp/util/filter/package-summary.html">org.jcsp.util.filter</a></td>
<td class="colLast">
<div class="block">
This defines filtering channels that can apply transformations to objects
as they are read and/or written.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="org/jcsp/util/ints/package-summary.html">org.jcsp.util.ints</a></td>
<td class="colLast">
<div class="block">This provides classes and interfaces to customise the semantics of <TT>int</TT> channels.</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="footer"><a name="overview_description">
<!--   -->
</a>
<div class="subTitle">
<div class="block">This document is the specification for the JCSP core API.
<P>
JCSP provides a complete library for building complex functionality
through layered networks of communicating processes.  It conforms to
the <A HREF="http://www.comlab.ox.ac.uk/archive/csp.html">CSP</A>
model of cummunicating systems so that twenty years of theory, tools
and practical experience can be brought to bear in the support of Java
multi-threaded applications.
Newcomers to JCSP should start with the documentation on
the <a href="org/jcsp/lang/CSProcess.html" title="interface in org.jcsp.lang"><code><TT>CSProcess</TT></code></a> interface,
which outlines and motivates the notion of <I>components</I> as <I>communicating processes</I>
and the <I>process oriented design</I> pattern.
<P>
Processes interact solely via CSP synchronising primitives, such as
<a href="org/jcsp/lang/Channel.html" title="class in org.jcsp.lang"><code><I>channels</I></code></a>
<i>(</i><a href="org/jcsp/lang/One2OneChannel.html" title="interface in org.jcsp.lang"><code><I>one-to-one</I></code></a>,
<a href="org/jcsp/lang/Any2OneChannel.html" title="interface in org.jcsp.lang"><code><I>any-to-one</I></code></a>,
<a href="org/jcsp/lang/One2AnyChannel.html" title="interface in org.jcsp.lang"><code><I>one-to-any</I></code></a>,
<a href="org/jcsp/lang/Any2AnyChannel.html" title="interface in org.jcsp.lang"><code><I>any-to-any</I></code></a><i>)</i>,
<a href="org/jcsp/lang/One2OneCallChannel.html" title="class in org.jcsp.lang"><code><I>CALL channels</I></code></a>,
<a href="org/jcsp/lang/CSTimer.html" title="class in org.jcsp.lang"><code><I>timers</I></code></a>,
<a href="org/jcsp/lang/Crew.html" title="class in org.jcsp.lang"><code><I>crews</I></code></a>,
<a href="org/jcsp/lang/Barrier.html" title="class in org.jcsp.lang"><code><I>barriers</I></code></a>,
<a href="org/jcsp/lang/AltingBarrier.html" title="class in org.jcsp.lang"><code><I>alting barriers</I></code></a>,
<a href="org/jcsp/lang/Bucket.html" title="class in org.jcsp.lang"><code><I>buckets</I></code></a>
or other well-defined modes of access
to shared passive objects.  Processes do not invoke each other's methods.
Processes may be combined to run in <a href="org/jcsp/lang/Sequence.html" title="class in org.jcsp.lang"><code><I>sequence</I></code></a>
or <a href="org/jcsp/lang/Parallel.html" title="class in org.jcsp.lang"><code><I>parallel</I></code></a>.  Processes may be combined to wait passively
on a number of <a href="org/jcsp/lang/Alternative.html" title="class in org.jcsp.lang"><code><I>alternative</I></code></a> events, with one of them
trigered into action only by the external generation of that event.
Such collections of events may
be serviced either <a href="org/jcsp/lang/Alternative.html#fairSelect()"><code><I>fairly</I></code></a>
(guaranteeing no starvation of one event by the repeated arrival of its siblings),
by any user-defined <a href="org/jcsp/lang/Alternative.html#priSelect()"><code><I>priority</I></code></a> or
in an <a href="org/jcsp/lang/Alternative.html#select()"><code><I>arbitrary</I></code></a> manner.
<P>
JCSP is an alternative to the built-in
<I>monitor</I> model for Java threads.  JCSP primitives should not normally
be mixed into designs with <TT>synchronized</TT> method declarations, instances
of the <TT>java.lang.Runnable</TT> interface or <TT>java.lang.Thread</TT> class,
or invocations of the <TT>wait</TT>/<TT>notify</TT>/<TT>notifyAll</TT>
methods from <TT>java.lang.Object</TT>.
<P>
However, JCSP is compatible with the built-in model and, with care, can be mixed
safely and profitably.  In particular, process communication via <TT>wait</TT>-free
<TT>synchronized</TT> method invocations on a shared passive object directly
implements a common CSP <I>server</I> idiom
(see <a href="org/jcsp/awt/DisplayList.html" title="class in org.jcsp.awt"><code><TT>DisplayList</TT></code></a> for an example).
Further, existing libraries that interact with user software via <I>listener</I>
registration and callback (such as the standard <I>AWT</I> and <I>Swing</I>) can be
easily tailored to operate as processes with channel-based interfaces (for
example, see <code><I>org.jcsp.awt</I></code>).
<P>
Finally, we note that the JCSP library reflects
the <A HREF="http://occam-pi.org/"><B>occam-pi</B></A>
realisation of CSP and pi-calculus.,
An <B>occam-pi</B> <TT>PROC</TT> declaration maps simply into a class implementing
<a href="org/jcsp/lang/CSProcess.html" title="interface in org.jcsp.lang"><code><TT>CSProcess</TT></code></a>, whose constructor parameters mirror the <TT>PROC</TT>
parameters and whose <TT>run</TT> method mirrors the <TT>PROC</TT> body.
<P>
<H2>Acknowledgements</H2>
This <A HREF="http://www.cs.ukc.ac.uk/projects/ofa/jcsp/">JCSP</A>
library is being developed from work originally carried out and
presented by numerous individuals at
the <A HREF="http://www.wotug.org/">WoTUG</A>
<A HREF="http://wotug.ukc.ac.uk/parallel/groups/wotug/java/"><I>Java Threads Workshop</I></A>
and conferences
(<A HREF="http://www.rt.el.utwente.nl/wotug20/"><I>WoTUG-20</I></A>,
<A HREF="http://wotug.ukc.ac.uk/parallel/groups/wotug/wotug21/"><I>WoTUG-21</I></A>,
<A HREF="http://www.keele.ac.uk/depts/cs/events/wotug22/"><I>WoTUG-22</I></A>,
<A HREF="http://wotug.ukc.ac.uk/cpa2000/"><I>WoTUG-23/CPA-2000</I></A>,
<A HREF="http://www.cs.bris.ac.uk/Events/CPA2001/"><I>WoTUG-24/CPA-2001</I></A>,
<A HREF="http://wotug.org/cpa2002/"><I>WoTUG-25/CPA-2002</I></A>,
<A HREF="http://www.ce.utwente.nl/cpa2003/"><I>WoTUG-26/CPA-2003</I></A>,
<A HREF="http://wotug.org/cpa2004/"><I>WoTUG-27/CPA-2004</I></A>,
<A HREF="http://www.wotug.org/cpa2005/"><I>WoTUG-28/CPA-2005</I></A>,
<A HREF="http://www.wotug.org/cpa2006/"><I>WoTUG-29/CPA-2006</I></A>,
<A HREF="http://www.cs.surrey.ac.uk/host/cpa2007/"><I>WoTUG-30/CPA-2007</I></A>,
<A HREF="http://www.cs.york.ac.uk/CPA08//"><I>WoTUG-31/CPA-2008</I></A>)
in the period 1996-2008 and continuing.
Please follow the links to find the original sources.
Special thanks are owed to <A HREF="mailto:p_d_austin@hotmail.com">Paul Austin</A>,
who developed 
<A HREF="http://www.cs.ukc.ac.uk/projects/ofa/jcsp0-5/"><I>the original JCSP</I></A>
library.

<H2>References</H2>
<I>`Communicating Sequential Processes'</I>,
C.A.R. Hoare,
CACM,
21-8,
pp. 666-677,
August 1978.
<BLOCKQUOTE>
This is the original exposition of CSP.  Presentation is largely from the
programmer's point of view.  The <B>Ada</B> tasking model and the
<B>occam</B>/transputer process model were derived from this work.
</BLOCKQUOTE>
<I>`Communicating Sequential Processes'</I>,
C.A.R. Hoare,
Prentice Hall,
1985.
<BLOCKQUOTE>
This is <I>`the book'</I>.  Presentation is more abstract (i.e. mathematical)
and a more general theory is given than in the original CACM paper.
One crucial difference is that <I>events</I> (and <I>channels</I>)
become concepts that are separate from the processes that engage in
them.  This difference was adopted in the <B>occam</B>/transputer
model, but <B>Ada</B> missed out on it.  The <I>JCSP</I> library
follows the model presented in this book.
</BLOCKQUOTE>
<I>`The Theory and Practice of Concurrency'</I>,
A.W. Roscoe,
Prentice Hall,
ISBN 0-13-674409-5,
1997.
<BLOCKQUOTE>
This brings CSP up to date with refinements developed over the past decade.
It is <I>`the new book'</I>.
</BLOCKQUOTE>
`<A HREF="http://wotug.ukc.ac.uk/parallel/theory/formal/csp/jeremy-martin/chapter1.ps.gz"><I>Communicating Sequential Processes and Deadlock</I></A>'
J.M.R.Martin,
Chapter 1 from his Ph.D thesis
("<A HREF="http://wotug.ukc.ac.uk/parallel/theory/formal/csp/jeremy-martin/">The Design
and Construction of Deadlock-Free Concurrent Systems</A>"),
University of Buckingham, UK,
1996.
<BLOCKQUOTE>
This gives a crisp, amusing and accurate tour around all the CSP concepts,
strongly recommended for beginners and experienced CSP users alike.
[Actually only up to (and including) page 11 are for normal mortals - after
that it starts to get scary.  But those first few pages are a gem.]
</BLOCKQUOTE>
<I>`A Classical Mind - Essays in Honour of C.A.R. Hoare'</I>,
Edited by A.W. Roscoe,
Prentice Hall,
ISBN 0-13-294844-3,
1994.
<BLOCKQUOTE>
Serious bedtime reading.
</BLOCKQUOTE>
<I>`Parallel Processing with Communicating Process Architecture'</I>,
I.R.East,
UCL press,
ISBN 1-85728-239-6,
1995.
<BLOCKQUOTE>
This is an excellent text on how to design and program with the CSP model -
many higher level design issues are addressed.
</BLOCKQUOTE>
<I>`occam 2 -- including occam 2.1'</I>,
John Galletly,
UCL press,
ISBN 1-85728-362-7,
1996.
<BLOCKQUOTE>
This is a good textbook on the <B>occam</B> version of the CSP model.
A knowledge of <B>occam</B> gives insight that makes
multithreading in <B>Java</B> simpler and, hence, safer to manage ;-) ...
</BLOCKQUOTE>
<I>`Parallel and Distributed Computing in Education'</I>,
<A HREF="mailto:P.H.Welch@ukc.ac.uk">P.H.Welch</A>,
in <I>Proceedings of VecPar'98</I>,
Lecture Notes in Computer Science #1573,
Springer-Verlag,
April 1999.
<BLOCKQUOTE>
This is a tutorial introduction to CSP from the point of view of
the programmer/designer.  JCSP bindings to key examples are given in
an appendix.  See <A HREF="vecpar-abstract.html">Abstract</A>.
</BLOCKQUOTE>
<I>`Java Threads in the Light of occam/CSP'</I>,
<A HREF="mailto:P.H.Welch@ukc.ac.uk">P.H.Welch</A>,
in <I>Architectures, Languages and Patterns for Parallel and Distributed
Applications</I>, Proceedings of WoTUG-21, pp. 259-284,
IOS Press (Amsterdam),
ISBN 90 5199 391 9,
April 1998.
<BLOCKQUOTE>
This is a tutorial introduction to the Java monitor model.
It raises concern over its ease of use and the safety of its standard
design patterns, but shows how it may be used to build
the CSP primitives.  Finally, it revisits those concerns and shows
how they fade in the light of CSP.
See <A HREF="vegas-abstract.html">Abstract</A>.
</BLOCKQUOTE>

<H2>Request for Feedback</H2>
Currently, the more complex the system requirements, the less likely it becomes
that concurrency (or multi-threading) play a major role.  This is because
concurrency is thought to make system design especially hard - so many additional
problems (race hazards, deadlock etc.) to worry about.
A good model of concurrency, however, should <I>simplify</I> the design,
implementation, verification and maintenance of systems.  A design goal
for our <I>CSP-for-Java</I> collaboration is to enable concurrency to play
that natural role.  <A HREF="mailto:jcsp-team@ukc.ac.uk">Feedback</A>
on moving towards that goal is always welcome.
<P></div>
</div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li class="navBarCell1Rev">Overview</li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><b>CSP for Java<br>(JCSP) 1.1-rc4</b></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
<li><a href="overview-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><font size=\'-1\'><A HREF=\'mailto:jcsp-team@kent.ac.uk\'>Submit a bug or feature to jcsp-team@kent.ac.uk</A><br>Version 1.1-rc4 of the JCSP API Specification (Copyright 1997-2008 P.D.Austin and P.H.Welch - All Rights Reserved)<br>Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.</small></p>
</body>
</html>