Re: [Vala] [Async] why use .begin ?
- From: JM <interflug1 gmx net>
- To: Michael 'Mickey' Lauer <mickey vanille-media de>
- Cc: vala-list gnome org
- Subject: Re: [Vala] [Async] why use .begin ?
- Date: Fri, 18 Sep 2009 18:59:05 +0200
Ok. Thanks!
PS.: Can someone who knows the async stuff better than me write a few
lines about .begin and .end to the vala tutorial?
Regards,
Jörn
Am Freitag, den 18.09.2009, 18:34 +0200 schrieb Michael 'Mickey' Lauer:
On Friday 18 September 2009 18:18:33 JM wrote:
Hi all
A few days ago I edited the asynchronous stream reading example on the
vala site to use the new async syntax.
http://live.gnome.org/Vala/GIOSamples#head-a6170c01121b9fe5825f431de73573b0
84545741
After the release of vala-0.7.6 I realized that other examples of the
new syntax use '.begin()' to call the async function.
I compiled the example with and without the .begin keyword and found NO
DIFFERENCE in the generated C code. Both ways are working properly.
Is there a case where the difference will be more clear?
Right now I think they're equal, although my view is that it should make a
difference when calling an async function from a synchronous one. The principle
of least surprise should be that begin() and end() would be collapsed to one
synchronous call in that particular case.
Right now async has a related problem though for async methods that return
values, i.e. the following code:
================
async int func()
{
return 10;
}
void main()
{
int i = func();
}
================
leads to the -- somewhat surprising -- error message:
================
mickey andromeda:/local/pkg/vala/test$ valac --pkg gio-2.0 foo.vala
foo.vala:8.10-8.15: error: invocation of void method not allowed as expression
int i = func();
^^^^^^
================
since internally the invocation is moved to func.begin(), which is (always) a
void method. This is no problem from async to async as we would be using int i
= yield func() in that case, however it's quite common to call async() from
sync(), hence some additional work is required here.
:M:
:M:
_______________________________________________
Vala-list mailing list
Vala-list gnome org
http://mail.gnome.org/mailman/listinfo/vala-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]