    # File lib/needle/lifecycle/proxy.rb, line 29
          def initialize( proc_obj=nil, *args, &callback )
            if proc_obj && callback
              raise ArgumentError, "only specify argument OR block, not both"
            end

            @callback = proc_obj || callback or
              raise ArgumentError, "callback required"

            @args = args
            @mutex = QueryableMutex.new
            @instantiation_failed = false
            @instance = nil
          end