LinkedList.st
changeset 2146 27069b34fb5a
parent 1364 94e30904604e
child 2349 b68ab8aaabe1
--- a/LinkedList.st	Sat Jan 11 13:14:19 1997 +0100
+++ b/LinkedList.st	Sat Jan 11 13:16:28 1997 +0100
@@ -43,7 +43,21 @@
     LinkedList does not care for storage; all it does is handling
     chained link elements, which must respond to #nextLink/#nextLink:.
     (i.e. any object which can do this, can be used as elements of a linked
-    list).
+     list). 
+    An abstract superclass for linkElements is Link; a concrete class is
+    ValueLink, which holds a reference to some object.
+
+    [warning:]
+        Be careful when subclassing Link, since there is a big drawback,
+        which may be overlooked by beginners: 
+            a Link element can only be in one LinkedList 
+            - adding the same element to another LinkedList
+            will remove it from the first as a side effect.
+        Therefore, NEVER simply add something to a linkedList (except for
+        valueLinks) unless you know what you do.
+        The ST-80 implementors probably wanted this behavior, to move
+        processes from the waitingList to runLists and vice versa;
+        however, literature seems to not point this out enough.
 
     Although LinkedList is a subclass of SequenceableCollection (and therefore
     supports indexed access via at:), you should be careful in using it or
@@ -62,6 +76,9 @@
 
     [author:]
         Claus Gittinger
+
+    [see also:]
+        Link ValueLink Process
 "
 !
 
@@ -387,5 +404,5 @@
 !LinkedList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/LinkedList.st,v 1.26 1996-05-09 14:26:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/LinkedList.st,v 1.27 1997-01-11 12:16:08 cg Exp $'
 ! !