Hi list,

I just subscribed, and this is my first post to the list.

The class Promise has a bug in printOn:. It is supposed to print '(???)' if
its value is not yet known. A missing return causes it to continue to print
the actual value, which will hang until the value is known. Same problem if
Promise has an error.

Here's a trivial patch.

/Tommy


diff --git a/kernel/ValueAdapt.st b/kernel/ValueAdapt.st
index d2957fd..95bdfb0 100644
--- a/kernel/ValueAdapt.st
+++ b/kernel/ValueAdapt.st
@@ -262,8 +262,8 @@ initialized, I suspend the process until a value has been 
assigned.'>
 
        <category: 'printing'>
        aStream print: self class.
-       self hasValue ifFalse: [ aStream nextPutAll: '(???)' ].
-       self hasError ifTrue: [ aStream nextPutAll: '(Error!)' ].
+       self hasValue ifFalse: [ ^aStream nextPutAll: '(???)' ].
+       self hasError ifTrue: [ ^aStream nextPutAll: '(Error!)' ].
 
        aStream
            nextPut: $(;

_______________________________________________
help-smalltalk mailing list
help-smalltalk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to