Anonymous avatar Anonymous committed a7b3e51

lisputils: calculating changes in the main thread

Comments (0)

Files changed (1)

ropemacs/lisputils.py

-import threading
 import traceback
 
 from Pymacs import lisp
                 if percent is not None:
                     progress.update(percent)
         handle.add_observer(update_progress)
-        class Calculate(object):
-
-            def __init__(self, task):
-                self.task = task
-                self.result = None
-                self.exception = None
-                self.traceback = None
-
-            def __call__(self):
-                try:
-                    self.result = self.task(handle)
-                except (Exception, KeyboardInterrupt), e:
-                    self.exception = e
-                    self.traceback = str(traceback.format_exc())
-
-        calculate = Calculate(self.task)
-        thread = threading.Thread(target=calculate)
-        try:
-            thread.start()
-            thread.join()
-            progress.done()
-            raised = calculate.exception
-            if raised is not None:
-                description = type(raised).__name__ + ': ' + str(raised)
-                raise exceptions.InterruptedTaskError(
-                    '%s\nTask <%s> was interrupted.\nReason: <%s>\n' %
-                    (calculate.traceback, self.name, description))
-        except:
-            handle.stop()
-            message('%s interrupted!' % self.name)
-            raise
-        return calculate.result
+        return self.task(handle)
 
 
 def runtask(command, name, interrupts=True):
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.