size increase
   
    Stephen Weeks
     
    MLton@sourcelight.com
       
    Tue, 9 Apr 2002 12:29:19 -0700
    
    
  
> callWithIn used fork, and hence did not work on Cygwin.  I'll think
> about a workaround.
One possible workaround is to just eliminate the signals from
OS.Process.system.  That is, change it from
      fun system cmd =
	 let
	    val pid =
	       MLton.Process.spawn {path = "/bin/sh",
				    args = ["sh", "-c", cmd]}
	    val old =
	       List.map (fn s => 
			 let
			    val old = Signal.getHandler s
			    val _ = Signal.ignore s
			 in (s, old)
			 end)
	       [Signal.int, Signal.quit]
	 in
	    DynamicWind.wind (fn () => wait pid,
			      fn () => List.app Signal.setHandler old)
	 end
to
      fun system cmd =
	 let
	    val pid =
	       MLton.Process.spawn {path = "/bin/sh",
				    args = ["sh", "-c", cmd]}
	 in
	    wait pid
	 end
I tried a round of self compiles with that and it worked fine.  The
only reason that the signal stuff was there is because that's how
SML/NJ did it.  Anybody know any reason for keeping it?  The user of
OS.Process.system could always do the signal wrapping himself if he
needs it.