I haven’t looked at this in ages, but at some point I had to go to the trouble of passing this as true to stackless.run() in the top level scheduler of my app because I discovered that someone using ‘exec’ inside a tasklet could monopolize the scheduler (could not switch until the exec completed).
I admit that I don’t understand it fully (or even "very much" without going to refresh my memory) and I assume by “go away” you mean: make the switching more “aggressive” by aways assuming that ignore_nesting is true. -Jas On Feb 12, 2014, at 5:14 AM, Kristján Valur Jónsson <[email protected]> wrote: > Hello there. > I have a question regartding stackless.run() > > This function has an „ignore_nesting“ boolean keyword. Individual tasklets > also have a „ignore_nesting“ flag. The keyword arg implies „ignore_nesting“ > as being true for all tasklets. > My question is this: > What is the use case for this? > If ignore_nesting is effectively false for a tasklet, then it will not be > (hard) interrupted if it has a „nesting level“ higher than 0. This means one > of two things: > 1) It is running as a separate hard switching tasklet (i.e. soft > switching is not enabled) > 2) Soft switching is enabled but the tasklet will need hard switcing, > e.g. because it is running in a nested „frame evaluation loop“, because it > has called through a C api. > > My question is more this, why would we have this limitation on interrupts? > And why make it the default? > What is more, is the author of code in a position to know beforehand if a > tasklet will have a posisitive nesting-level? > > Note that code can prhohibit interrupts by using the atomic flag (although > this will also have the side effect of prohibiting thread switches). the > ignore-nesting flag will _allow_ interrupts that would otherwise be > automatically prohibited because of the nesting level. > > I think this nesting_level busininess for the watchdog is confusing and would > like to see it go away, but for that we need to understand why it was put in > place in the first place. > K > _______________________________________________ > Stackless mailing list > [email protected] > http://www.stackless.com/mailman/listinfo/stackless
_______________________________________________ Stackless mailing list [email protected] http://www.stackless.com/mailman/listinfo/stackless
