RecursionLock.st
changeset 776 f3c0c579c0d2
parent 699 12f456343eea
child 1186 cf4c57ecabb8
--- a/RecursionLock.st	Sat Dec 16 13:54:22 1995 +0100
+++ b/RecursionLock.st	Sat Dec 16 14:01:20 1995 +0100
@@ -12,10 +12,10 @@
 
 
 Object subclass:#RecursionLock
-	 instanceVariableNames:'process sema'
-	 classVariableNames:''
-	 poolDictionaries:''
-	 category:'Kernel-Processes'
+	instanceVariableNames:'process sema'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Processes'
 !
 
 !RecursionLock class methodsFor:'documentation'!
@@ -44,17 +44,30 @@
 
     example:
 
-	|lock|
+        |lock|
+
+        lock := RecursionLock new.
+        lock critical:[
+            Transcript showCr:'in lock ...'.
+            lock critical:[
+                Transcript showCr:'again ...'
+            ]
+        ]
+
+    in contrast to (wrong example):
 
-	lock := RecursionLock new.
-	lock critical:[
-	    Transcript showCr:'in lock ...'.
-	    lock critical:[
-		Transcript showCr:'again ...'
-	    ]
-	]
+        |lock|
+
+        lock := Semaphore forMutualExclusion.
+        lock critical:[
+            Transcript showCr:'in lock ...'.
+            lock critical:[
+                '*** never reached - deadlock because sema is already locked ***'.
+                '    (press CTRL-c and abort in the debugger)'.
+                Transcript showCr:'again ...'
+            ]
+        ]
 "
-
 ! !
 
 !RecursionLock class methodsFor:'instance creation'!
@@ -96,5 +109,5 @@
 !RecursionLock class methodsFor:'documentation'!
 
 version 
-    ^ '$Header: /cvs/stx/stx/libbasic/RecursionLock.st,v 1.6 1995-12-07 21:30:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/RecursionLock.st,v 1.7 1995-12-16 13:01:20 cg Exp $'
 ! !