var abort = require('./abort.js')

, async = require('./async.js')
;

// API module.exports = terminator;

/**

* Terminates jobs in the attached state context
*
* @this  AsyncKitState#
* @param {function} callback - final callback to invoke after termination
*/

function terminator(callback) {

if (!Object.keys(this.jobs).length)
{
  return;
}

// fast forward iteration index
this.index = this.size;

// abort jobs
abort(this);

// send back results we have so far
async(callback)(null, this.results);

}