         
         @_watchForDir path.resolve(@dir,"tmp/restart.txt"), => @_startUp()
   
-    @_restartInstance()
+    @debounceRestart()
     
   #----------
   

    # set up a watcher on tmp/restart.txt
    @r_watcher = fs.watch path.resolve(@dir,"tmp/restart.txt"), (type,filename) => 
      # only restart on a touch, not on a deletion (such as when current/ is unlinked)
      @_restartInstance() if fs.existsSync("#{@dir}/tmp/restart.txt")
      
    # watch for our directory to change out from under us
    d_base = path.basename(@dir)

      process.exit()
      
    @dir = path.resolve(@dir)
    
    # create a debounced function for calling restart, so that we don't 
    # trigger multiple times in a row.  This would just be _.debounce, 
    # but bringing underscore in for one thing seemed silly
    
    @debounceRestart = do =>
      _timeout = null
      _ts = 1000
      
      =>
        clearTimeout(_timeout)
        _timeout = setTimeout =>
          _timeout = null
          @_restartInstance()
        , _ts
    
    # -- Startup -- #
        
