On Thu, Apr 28, 2011 at 04:38:43PM +0100, Sam Liddicott wrote: > > On 28/04/11 16:08, Luca Bruno wrote: > >On Thu, Apr 28, 2011 at 03:58:32PM +0100, Sam Liddicott wrote: > >>This feature may be less useful for vala if it does stack-tear-down > >>for interruptable functions, but perhaps more suited if it uses > >>co-routines with different stacks so that the stack is switched and > >>not torn-down when an interruptable function is interrupted. > >Yes that's the problem, with vala you may pass the closure to another > >function and exit from the current scope, while with gcc nested function > >the stack is lost once you exit the outer function. > > And it's hard to control this or know when it is happening by accident. > > I wonder if it is worth considering libpcl or other co-routine > libraries - it would take away the need for a lot of effort to get > fuller closure support. > > I've also been thinking of ways to detect when vala closures go > stale - one way is for the data pointer to be indirected via a heap > allocated pointer. This could be set to null by the outer function > when it exits, and so any use after this point can be detected - as > when the wrapper trampoline function is executed it will detect that > the data pointer points to NULL instead of pointing to the actual > data pointer.
I don't get what's the problem with actual vala closures that you need to find an alternative. -- http://www.debian.org - The Universal Operating System _______________________________________________ vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
