If I do the same thing with an Idle, the behavior is significantly
different, as the block data is not destroyed as soon as the run()
function is left. Why is that? 

Well working example:

class HHH : Object {
        public void run() {
                string test = "test";
                Idle.add(() => { print("in idle : %s \n", test); return 
false;});
        }
        
        public static MainLoop loop;
        
        public static int main() {
                loop = new MainLoop(null, false);
                var h = new HHH();
                h.run();
                h.run();
                h.run();
                h.run();
                loop.run();
                return 0;
        }
}

// valac closuretest.vala

_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to