[BUG][VM] 1929FastPrimFailures.cs

Stephan Rudlof sr at evolgo.de
Sat Mar 25 19:06:06 UTC 2000


Andreas and others,

I have some comments to changeset 'FastPrimFailures'.

I'm very concerned (think it's a bug) about one aspect of the
implementation, it is the initialization of pluginSessionID in
Interpreter>>initializeInterpreter: :

It will be initialized by
        pluginSessionID _ self ioMicroMSecs.
; where
- ioMicroMSecs returns a milliseconds value in spite of its name,
- starting by zero at startup.

Since this function is called at similar times at startup time in the
beginning and Interpreter>>setNewPluginSessionID just increments the
pluginSessionID by 1, it is good  possible that same pluginSessionID's
occur twice. These pluginSessionIDs remain in the CompiledMethods of the
image which call external functions.

So repeating an old pluginSessionID later could lead to a crash! If an
external function has been called last just in the  'session' where the
pluginSessionID arised before, Interpreter>>primitiveExternalCall
thinks, that the function address has already been loaded, but this is
wrong...

Calling Interpreter>>setNewPluginSessionID in the same run of Squeak -
necessary for reloading modules functionality - enlarges the probability
of running into this problem further.


This problem was the main reason why I introduced a session id in the
image which survives a save&quit of Squeak (it takes a long time if the
counter rolls over then...).
I understand that there is a compatibility problem to older images with
this implementation (I've just run into it ;-) ), so it would be nice to
have another solution.

Any ideas?


Greetings,

Stephan


P.S.: Last but not least, my surname is 'Rudlof'; in preamble it is:
        Author: Stephan Rudloff & Andreas Raab
.
-- 
Stephan Rudlof (sr at evolgo.de)
   "Genius doesn't work on an assembly line basis.
    You can't simply say, 'Today I will be brilliant.'"
    -- Kirk, "The Ultimate Computer", stardate 4731.3
-- 
Stephan Rudlof (sr at evolgo.de)
   "Genius doesn't work on an assembly line basis.
    You can't simply say, 'Today I will be brilliant.'"
    -- Kirk, "The Ultimate Computer", stardate 4731.3





More information about the Squeak-dev mailing list