[GRASS-SVN] r62649 - grass/trunk/gui/wxpython/core

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Nov 6 19:23:40 PST 2014


Author: annakrat
Date: 2014-11-06 19:23:40 -0800 (Thu, 06 Nov 2014)
New Revision: 62649

Modified:
   grass/trunk/gui/wxpython/core/utils.py
Log:
wxGUI: change GuiModuleMain implementation, calls simply main() instead of forking new process because it was not stable and not working on Windows and Mac

Modified: grass/trunk/gui/wxpython/core/utils.py
===================================================================
--- grass/trunk/gui/wxpython/core/utils.py	2014-11-07 02:53:39 UTC (rev 62648)
+++ grass/trunk/gui/wxpython/core/utils.py	2014-11-07 03:23:40 UTC (rev 62649)
@@ -1062,35 +1062,12 @@
 
 def GuiModuleMain(mainfn):
     """Main function for g.gui.* modules
-    
-    Note: os.fork() is supported only on Unix platforms
-    
-    .. todo::
-        Replace os.fork() by multiprocessing (?)
-    
-    :param mainfn: main function
+
+    os.fork removed in r62649 as fragile
     """
-    if sys.platform != 'win32':
-        # launch GUI in the background
-        child_pid = os.fork()
-        if child_pid == 0:
-            # To become the session leader of this new session and the process group
-            # leader of the new process group, we call os.setsid().  The process is
-            # also guaranteed not to have a controlling terminal.
-            os.setsid()
-            mainfn()
-        else:      
-            # exit() or _exit()?
-            # _exit is like exit(), but it doesn't call any functions registered
-            # with atexit (and on_exit) or any registered signal handlers.  It also
-            # closes any open file descriptors.  Using exit() may cause all stdio
-            # streams to be flushed twice and any temporary files may be unexpectedly
-            # removed.  It's therefore recommended that child branches of a fork()
-            # and the parent branch(es) of a daemon use _exit().
-            os._exit(0)   # Exit parent of the child.
-    else:
-        mainfn()
+    mainfn()
 
+
 def PilImageToWxImage(pilImage, copyAlpha = True):
     """Convert PIL image to wx.Image
     



More information about the grass-commit mailing list