QuerySignal.st
changeset 3581 24a4c149bafb
parent 3307 08ad28464911
child 4061 ef62e88fd0ac
--- a/QuerySignal.st	Mon Jun 15 18:03:52 1998 +0200
+++ b/QuerySignal.st	Mon Jun 15 21:30:02 1998 +0200
@@ -363,7 +363,7 @@
      Invoking the handler is exactly the functionality of Signal>>raiseRequest,
      but we can do it faster here."
 
-    |con|
+    |con s|
 
     con := thisContext sender.
     [con notNil] whileTrue:[
@@ -374,7 +374,7 @@
             (con selector == #handle:do:) ifFalse:[
                 ^ super raiseRequest
             ].
-            (con receiver == self) ifTrue:[
+            (s := con receiver) == self ifTrue:[
                 "/ found a non-busy handler ...
                 "/ if its sender is a #answer context,
                 "/ fetch its value quickly from it.
@@ -385,6 +385,10 @@
                     ]
                 ].
                 ^ con argAt:1
+            ] ifFalse:[
+                (s accepts:self) ifTrue:[
+                    ^ super raiseRequest
+                ]
             ]
         ]
     ].
@@ -397,8 +401,8 @@
     ].
     ^ super raiseRequest
 
-    "Modified: / 31.8.1997 / 08:05:32 / cg"
     "Modified: / 2.3.1998 / 10:40:39 / stefan"
+    "Modified: / 15.6.1998 / 21:27:37 / cg"
 !
 
 raise
@@ -420,5 +424,5 @@
 !QuerySignal class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/QuerySignal.st,v 1.22 1998-03-02 12:01:14 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/QuerySignal.st,v 1.23 1998-06-15 19:30:02 cg Exp $'
 ! !