I just thought the async/yield methodology was an elegant way of chaining together multiple background tasks, but are you saying that it's not suited to what I want and I should do it all with threads and hand-written callbacks?
On 19 November 2010 22:55, pancake <[email protected]> wrote: > you are using coroutines which are not designed to "run stuff in > background". > > coroutines are designed to run collaborative code which hangs if one of the > parts doesn't pass the token when necessary. > > You have to use threads, or an idle task if you have a mainloop. > > On 11/19/10 08:34, James Moschou wrote: >> >> Hello, >> >> I want to perform a series of tasks one after the other, but in the >> background. So I have: >> >> async bool perform_tasks () { >> bool result = yield task1 (); >> if (result) >> result = yield task2 (); >> if (result) >> result = yield task3 (); >> >> Idle.add (perform_tasks.callback) >> yield; >> return result; >> } >> >> more or less. >> >> One of the tasks however spawns a new process, and I'm not sure how >> the callback from this process is supposed to fit into Vala's way of >> doing async programming, i.e. Process.spawn_async_with_pipes () isn't >> actually an "async" method. >> >> How would I do this, am I making things too complicated? >> >> Cheers, >> James >> _______________________________________________ >> vala-list mailing list >> [email protected] >> http://mail.gnome.org/mailman/listinfo/vala-list >> > > _______________________________________________ > vala-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/vala-list > _______________________________________________ vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
