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

Projects/Vala/Threading (last edited 2020-01-02 13:02:20 by Gavr Maxutenko)