Browse Source

neko.vm.Mutex.hx documentation

Mark Knol 10 years ago
parent
commit
d7388e558f
1 changed files with 24 additions and 0 deletions
  1. 24 0
      std/neko/vm/Mutex.hx

+ 24 - 0
std/neko/vm/Mutex.hx

@@ -23,18 +23,42 @@ package neko.vm;
 
 
 class Mutex {
 class Mutex {
 	var m : Dynamic;
 	var m : Dynamic;
+	
+	/**
+		Creates a mutex, which can be used to acquire a temporary lock 
+		to access some ressource. The main difference with a lock is 
+		that a mutex must always be released by the owner thread.
+	*/
 	public function new() {
 	public function new() {
 		m = mutex_create();
 		m = mutex_create();
 	}
 	}
+	
+	/**
+		The current thread acquire the mutex or wait if not available.
+		The same thread can acquire several times the same mutex but 
+		must release it as many times it has been acquired.
+	*/
 	public function acquire() {
 	public function acquire() {
 		mutex_acquire(m);
 		mutex_acquire(m);
 	}
 	}
+	
+	/**
+		Try to acquire the mutex, returns true if acquire or false 
+		if it's already locked by another thread.
+	*/
 	public function tryAcquire() : Bool {
 	public function tryAcquire() : Bool {
 		return mutex_try(m);
 		return mutex_try(m);
 	}
 	}
+	
+	/**
+		Release a mutex that has been acquired by the current thread. 
+		The behavior is undefined if the current thread does not own
+		the mutex.
+	*/
 	public function release() {
 	public function release() {
 		mutex_release(m);
 		mutex_release(m);
 	}
 	}
+	
 	static var mutex_create = neko.Lib.loadLazy("std","mutex_create",0);
 	static var mutex_create = neko.Lib.loadLazy("std","mutex_create",0);
 	static var mutex_release = neko.Lib.loadLazy("std","mutex_release",1);
 	static var mutex_release = neko.Lib.loadLazy("std","mutex_release",1);
 	static var mutex_acquire = neko.Lib.loadLazy("std","mutex_acquire",1);
 	static var mutex_acquire = neko.Lib.loadLazy("std","mutex_acquire",1);