On Sun, Aug 5, 2012 at 2:57 PM, Igor Stasenko <[email protected]> wrote:
> On 5 August 2012 23:37, Stéphane Ducasse <[email protected]> > wrote: > > I have the impression that you will need a finer order at least for the > kernel. > > so putting > >> SomeClass>>startUp: quitting > >> <systemShutdown: #kernel priority: 1000> > >> self blahblah. > > > > looks to me the way to go and yes we should clean that part two. > > > > Now what is the gain to have pragma and not just a class side method > returning a number? > > > > Stef > > > the downside of it, that you apparently more slower than explicit > subscription (you have to scan > over all methods with such pragma). > No. Registration can be done when methods are added or removed. Pragmas don't have to be scanned on each invocation. Instead the need is for a hook when methods are added or removed, and such hooks exist. > > i cannot remember what solution i proposed.. ah ok.. i recall. > i proposed to introduce a session-awareness. i.e. an object holds a > reference to a session object > and before each access to its some session-specific resource it should > check if session has changed or not. > and if session is obsolete, then you know that you must reinitialize > (meaning do a startup). > this is what i did in NB: it does not registering for startup, but > instead it initializing at first attempt to use it. So if nobody using > it, nothing happens (means no extra cycles burned at startup for > nothing). > This also solves nicely a problem with priority of service initialization: > - imagine service A requires service B to function, > but user code attempts to access a service A first. Now since service > A will try to access a service B first, > as result, a service B will be naturally (re)initialized first. > Like that, you don't even need to think (or make sure), who should be > (re)initialized first, because chain of priority automatically adjusts > itself according to program flow. > > -- > Best regards, > Igor Stasenko. > > -- best, Eliot
