Commits

Joao Bueno committed f7d0c24

Main executor function

Comments (0)

Files changed (4)

Add a comment to this file

lelo/__init__.pyc

Binary file removed.

 # coding: utf-8
 # Author: João S. O. Bueno
 
-def paralell():
+from multiprocessing import Process, Queue
+
+
+a = Process()
+
+def _xecuter(queue, func, args, kwargs):
+    queue.put(func(*args, **kwargs))
+
+
+#q = Queue(1)
+#a = Process(target = soma, args=(q, 2, 3) )
+
+#x = a.start()
+#print q.get()
+
+
+
+def paralell(func):
+    """
+    Make so that the function is called in a separate process, 
+    using Python multiprocessing, and gets started imediatelly -
+    in a non blocking way.
+    The return value is a proxy object that will bridge to the real
+    return value whenever it is used - it will block at time
+    of use if it is not complete
+    """
     pass

Binary file removed.

 
 
 import sys, os
-#lelo_path = os.pwd().rsplit("/", 2)[0] 
 sys.path.insert(0, "..")
-#print sys.path, __name__, locals().keys()
-#del lelo_path
 
 from lelo import paralell
 import unittest
 
 class Tests(unittest.TestCase):
-    def test_running(self):
-        assert True
+    def test_can_import(self):
+        self.assert_(__import__("lelo"))
+
+    def test_can_execute_func_out_of_process(self):
+        from multiprocessing import Queue, Process
+        from lelo._lelo import _xecuter
+        queue = Queue(1)
+
+        def sum_(a, b):
+            return a + b
+        
+        proc  = Process(target=_xecuter, 
+            args=(queue, sum_, (2, 3), {}))
+        proc.start()
+        
+        
+        self.assertEqual(queue.get(), 5)
+
 
 if __name__ == "__main__":
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.