code: function destroy(err) {
              if (!this._alive) {
                  return this;
              }
              var ress = this._results;
              var callback = this.callback;
              var failure  = this.failure;
              var dispose = this.dispose;
  
              this._tasks = null;
              this._taskcount = 0;
              this._results = null;
              this.callback = none;
              this.failure = none;
              this.dispose = none;
  
              // @TODO: Change where to run to finally.
              //dispose.call(this); // run the "dispose()"
  
              ress.shift(); // remove null-result created on first iterate
  
              try {
                  if (callback) {
                      callback(err, ress);
                  } else if (err) {
                      // if err and no callback,
                      // throw to exec failure callback
                      throw err;
                  }
              } catch (ex) {
                  if (failure) {
                      try {
                          failure(ex);
                      } catch (ex1) {
                          if (Bucks._isOnError) {
                              Bucks._onError(ex1, this);
                          } else {
                              throw ex1;
                          }
                      }
                  } else {
                      // if err and no failure callback
                      // throw it
                      if (Bucks.DEBUG) {
                          // if DEBUG, logging
                          logError(ex);
                      }
                      if (Bucks._isOnError) {
                          Bucks._onError(ex, this);
                      } else {
                          throw ex;
                      }
  
                  }
              } finally {
  
                  try {
                      dispose.call(this); // run the "dispose()"
                  } catch (ex1) {
                      if (Bucks._isOnError) {
                          Bucks._onError(ex1, this);
                      } else {
                          throw ex1;
                      }
                  }
  
                  // @TODO: excluded from the deleted
                  // delete this._interrupt;
  
                  delete this._alive;
                  delete Bucks.running[this.__id];
                  delete Bucks.living[this.__id];
                  delete this.__id;
              }
              return this;
          }
docs: このオブジェクトを破棄して
  最終コールバックをコールします
  @memberof Bucks
  @instance
  @private
  @param {Error} [err] エラーがあれば渡す
  @return {Bucks}