 {isEqual} = require 'underscore-plus'
 {hook} = require '../../misc'
 basic = require './basic'
+
+IPC = require '../ipc'
 
 module.exports =
 

          .catch (e) =>
            delete @booting
            @removeFromCache path, args, obj
            Promise.reject e
        obj
    return


    @procs[key] = @procs[key].filter (x) -> x != obj

  toCache: (path, args, proc) ->
    proc.cached = true
    @cache(path, args).push proc

  fromCache: (path, args) ->
    ps = @cache path, args
    p = ps.shift()
    return unless p?
    p.cached = false
    p.init.then =>
      if p == @booting then delete @booting
      @start path, args
      p.proc

  start: (path, args) ->
    if @booting
