help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] [bug] Exceptions using Delay


From: Tony Garnock-Jones
Subject: [Help-smalltalk] [bug] Exceptions using Delay
Date: Mon, 14 Jan 2008 10:09:24 -0700

Issue status update for http://smalltalk.gnu.org/node/159 Post a follow up: http://smalltalk.gnu.org/project/comments/add/159

Project:      GNU Smalltalk
Version:      <none>
Component:    VM
Category:     bug reports
Priority:     normal
Assigned to:  Unassigned
Reported by:  tonyg
Updated by:   tonyg
Status:       active

The following code produces exceptions as below in bursts after a few
seconds. More generally, it seems Delay starts failing in situations
where the system is somewhat loaded (such as during the event- and
render-loops in our SDL/cairo bindings-in-progress).

Code:


Object subclass: DelayExperiment [
   run [
       [ (Delay forMilliseconds: 1) wait ] repeat.
   ]
].
DelayExperiment new run.


Expected output: nothing, forever.

Actual output:


$ gst delay-bug.st "Global garbage collection... done"
Object: nil error: did not understand #goodness:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #goodness:
optimized [] in BlockClosure class>>exceptionHandlerSearchBlock
[] in Kernel.CoreException>>instantiateNextHandler:
MethodContext(ContextPart)>>scanBacktraceForAttribute:do:
Kernel.CoreException>>instantiateNextHandler:
SystemExceptions.PrimitiveFailed(Exception)>>signal
SystemExceptions.PrimitiveFailed class(Exception class)>>signal
ProcessorScheduler(Object)>>primitiveFailed
ProcessorScheduler>>signal:atMilliseconds:
Delay class>>handleDelayEvent
optimized [] in Delay class>>runDelayProcess
[] in BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
BlockClosure>>ifCurtailed:
Delay class>>runDelayProcess
optimized [] in Delay class>>startDelayLoop
[] in Process>>onBlock:at:suspend:
BlockClosure>>on:do:
[] in Process>>onBlock:at:suspend:
BlockClosure>>ensure:
[] in Process>>onBlock:at:suspend:
[] in BlockClosure>>asContext:
BlockContext class>>fromClosure:parent:
Object: ProcessorScheduler new "<0x4030c820>" error: primitive
operation failed
SystemExceptions.PrimitiveFailed(Exception)>>signal
SystemExceptions.PrimitiveFailed class(Exception class)>>signal
ProcessorScheduler(Object)>>primitiveFailed
ProcessorScheduler>>signal:atMilliseconds:
Delay class>>handleDelayEvent
optimized [] in Delay class>>runDelayProcess
[] in BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
BlockClosure>>ifCurtailed:
Delay class>>runDelayProcess
optimized [] in Delay class>>startDelayLoop
[] in Process>>onBlock:at:suspend:
BlockClosure>>on:do:
[] in Process>>onBlock:at:suspend:
BlockClosure>>ensure:
[] in Process>>onBlock:at:suspend:
[] in BlockClosure>>asContext:
BlockContext class>>fromClosure:parent:
Object: ProcessorScheduler new "<0x4030c820>" error: primitive
operation failed
SystemExceptions.PrimitiveFailed(Exception)>>signal
SystemExceptions.PrimitiveFailed class(Exception class)>>signal
ProcessorScheduler(Object)>>primitiveFailed
ProcessorScheduler>>signal:atMilliseconds:
Delay class>>handleDelayEvent
optimized [] in Delay class>>runDelayProcess
[] in BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
BlockClosure>>ifCurtailed:
Delay class>>runDelayProcess
optimized [] in Delay class>>startDelayLoop
[] in Process>>onBlock:at:suspend:
BlockClosure>>on:do:
[] in Process>>onBlock:at:suspend:
BlockClosure>>ensure:
[] in Process>>onBlock:at:suspend:
[] in BlockClosure>>asContext:
BlockContext class>>fromClosure:parent:
Object: ProcessorScheduler new "<0x4030c820>" error: primitive
operation failed
SystemExceptions.PrimitiveFailed(Exception)>>signal
SystemExceptions.PrimitiveFailed class(Exception class)>>signal
ProcessorScheduler(Object)>>primitiveFailed
ProcessorScheduler>>signal:atMilliseconds:
Delay class>>handleDelayEvent
optimized [] in Delay class>>runDelayProcess
[] in BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
BlockClosure>>ifCurtailed:
Delay class>>runDelayProcess
optimized [] in Delay class>>startDelayLoop
[] in Process>>onBlock:at:suspend:
BlockClosure>>on:do:
[] in Process>>onBlock:at:suspend:
BlockClosure>>ensure:
[] in Process>>onBlock:at:suspend:
[] in BlockClosure>>asContext:
BlockContext class>>fromClosure:parent:
...
...
...







reply via email to

[Prev in Thread] Current Thread [Next in Thread]