Threading in Vala
Locks
Lock can be used like in C#. The main difference is, that you can only lock members of your class.
/* Vala Lock Example */
using GLib;
public class Sample : GLib.Object {
private int critical_data;
public void inc () {
lock (critical_data) {
critical_data++;
}
}
static void main (string[] args) {
var sample = new Sample ();
sample.inc ();
}
}
Compile
$ valac lock.vala $ ./lock