Concurent_async added.
This commit is contained in:
parent
8916e333a7
commit
289eb9ff5d
|
@ -0,0 +1,44 @@
|
|||
bool called = false;
|
||||
|
||||
async void noop() {
|
||||
}
|
||||
|
||||
async void foo_async() {
|
||||
if (called) {
|
||||
stdout.puts("foo_async(): wait\n");
|
||||
while (called)
|
||||
yield noop();
|
||||
return;
|
||||
}
|
||||
stdout.puts("foo_async(): execute\n");
|
||||
called = true;
|
||||
for (var i = 0; i < 100000; ++i);
|
||||
yield noop();
|
||||
called = false;
|
||||
}
|
||||
|
||||
int main() {
|
||||
|
||||
foo_async.begin((obj, res) => {
|
||||
foo_async.end(res);
|
||||
stdout.puts("1'st foo_async() ended\n");
|
||||
});
|
||||
|
||||
|
||||
foo_async.begin((obj, res) => {
|
||||
foo_async.end(res);
|
||||
stdout.puts("2'nd foo_async() ended\n");
|
||||
});
|
||||
|
||||
var loop = new MainLoop();
|
||||
|
||||
var t = new TimeoutSource(0);
|
||||
t.set_callback(() => {
|
||||
loop.quit();
|
||||
return false;
|
||||
});
|
||||
t.attach(loop.get_context());
|
||||
loop.run();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
valac --pkg=gio-2.0 concurent_async.vala && ./concurent_async
|
Loading…
Reference in New Issue