--- 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 $'
! !