Nicolas Cannasse 19 years ago
parent
commit
6c165daca1
3 changed files with 104 additions and 55 deletions
  1. 0 55
      std/neko/Thread.hx
  2. 41 0
      std/neko/vm/Lock.hx
  3. 63 0
      std/neko/vm/Thread.hx

+ 0 - 55
std/neko/Thread.hx

@@ -1,55 +0,0 @@
-package neko;
-
-enum ThreadHandle {
-}
-
-class Lock {
-	var l : Void;
-	public function new() {
-		l = lock_create();
-	}
-	public function wait( ?timeout : Float ) : Bool {
-		return lock_wait(l,timeout);
-	}
-	public function release() {
-		lock_release(l);
-	}
-	static var lock_create = neko.Lib.load("std","lock_create",0);
-	static var lock_release = neko.Lib.load("std","lock_release",1);
-	static var lock_wait = neko.Lib.load("std","lock_wait",2);
-}
-
-class Thread {
-
-	var handle : ThreadHandle;
-
-	function new(h) {
-		handle = h;
-	}
-
-	public function sendMessage( msg : Dynamic ) {
-		thread_send(handle,msg);
-	}
-
-	public static function current() {
-		return new Thread(thread_current());
-	}
-
-	public static function create<T>( callb : T -> Void, param : T ) {
-		return new Thread(thread_create(callb,param));
-	}
-
-	public static function readMessage( block : Bool ) : Dynamic {
-		return thread_read_message(block);
-	}
-
-	function __compare(h) {
-		return untyped __dollar__compare(handle,h);
-	}
-
-	static var thread_create = neko.Lib.load("std","thread_create",2);
-	static var thread_current = neko.Lib.load("std","thread_current",0);
-	static var thread_send = neko.Lib.load("std","thread_send",2);
-	static var thread_read_message = neko.Lib.load("std","thread_read_message",1);
-
-}

+ 41 - 0
std/neko/vm/Lock.hx

@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2005, The haXe Project Contributors
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE HAXE PROJECT CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE HAXE PROJECT CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+package neko.vm;
+
+class Lock {
+	var l : Void;
+	public function new() {
+		l = lock_create();
+	}
+	public function wait( ?timeout : Float ) : Bool {
+		return lock_wait(l,timeout);
+	}
+	public function release() {
+		lock_release(l);
+	}
+	static var lock_create = neko.Lib.load("std","lock_create",0);
+	static var lock_release = neko.Lib.load("std","lock_release",1);
+	static var lock_wait = neko.Lib.load("std","lock_wait",2);
+}

+ 63 - 0
std/neko/vm/Thread.hx

@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2005, The haXe Project Contributors
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE HAXE PROJECT CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE HAXE PROJECT CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+package neko.vm;
+
+enum ThreadHandle {
+}
+
+class Thread {
+
+	var handle : ThreadHandle;
+
+	function new(h) {
+		handle = h;
+	}
+
+	public function sendMessage( msg : Dynamic ) {
+		thread_send(handle,msg);
+	}
+
+	public static function current() {
+		return new Thread(thread_current());
+	}
+
+	public static function create( callb : Void -> Void ) {
+		return new Thread(thread_create(function(_) { return callb(); },null));
+	}
+
+	public static function readMessage( block : Bool ) : Dynamic {
+		return thread_read_message(block);
+	}
+
+	function __compare(h) {
+		return untyped __dollar__compare(handle,h);
+	}
+
+	static var thread_create = neko.Lib.load("std","thread_create",2);
+	static var thread_current = neko.Lib.load("std","thread_current",0);
+	static var thread_send = neko.Lib.load("std","thread_send",2);
+	static var thread_read_message = neko.Lib.load("std","thread_read_message",1);
+
+}