diff -r 620ef12f673c -r 1caadc2e24d8 Block.st --- a/Block.st Wed May 12 10:55:22 2010 +0200 +++ b/Block.st Thu May 20 10:35:48 2010 +0200 @@ -605,16 +605,6 @@ ^ nargs ! ! -!Block methodsFor:'binary storage'! - -storeBinaryDefinitionOn:stream manager:manager - byteCode isNil ifTrue:[ - self error:'cannot store stc-compiled code of blocks (yet)'. - ]. - ^ super storeBinaryDefinitionOn:stream manager:manager - - "Modified: / 10-05-2010 / 12:59:55 / cg" -! ! !Block methodsFor:'compatibility-Cola & Pepsi'! @@ -2024,12 +2014,13 @@ exceptionBlock's value is returned. The receiver's code must be prepared for premature returning (by adding ensure blocks, as required)" - |showStopper me signal retVal| - + |showStopper me signal retVal done| + + done := false. me := Processor activeProcess. signal := Signal new notifierString:'timeout'. - showStopper := [ me interruptWith:[ signal raise ] ]. + showStopper := [ done ifFalse:[ me interruptWith:[ signal raise ]] ]. signal handle:[:ex | retVal := exceptionBlock value. @@ -2041,7 +2032,10 @@ afterMilliseconds:aTimeLimit. retVal := self value. - ] ensure:[ Processor removeTimedBlock:showStopper ]. + done := true. + ] ensure:[ + Processor removeTimedBlock:showStopper + ]. ]. ^ retVal @@ -2052,7 +2046,7 @@ ] valueWithWatchDog:[false] afterMilliseconds:2000 " - "Modified: / 09-09-2007 / 15:18:22 / cg" + "Modified: / 20-05-2010 / 10:35:33 / cg" ! ! !Block methodsFor:'exception handling private'! @@ -2932,11 +2926,11 @@ !Block class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.178 2010-05-10 11:02:26 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.179 2010-05-20 08:35:48 cg Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.178 2010-05-10 11:02:26 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.179 2010-05-20 08:35:48 cg Exp $' ! ! Block initialize!