dev/vala/threads/lock.vala

35 lines
597 B
Vala

public class MyThread : Object {
public int lock_var = 0;
public int increase_lock_var () {
var ret = 0;
lock (lock_var) ret = ++lock_var;
return ret;
}
public int run () {
for (var i = 0; i < 8; ++i) {
var tmp = 0;
lock (lock_var) tmp = lock_var++;
stdout.puts (@"thrd:$lock_var\n");
Thread.usleep(100);
}
return 0;
}
}
void main () {
var mt = new MyThread ();
var t = new Thread<int> ("Debugging thread name", mt.run);
for (var i = 0; i < 8; ++i) {
var tmp = mt.increase_lock_var ();
stdout.puts(@"main:$tmp\n");
Thread.usleep(100);
}
t.join ();
}