code: function _storeAndEmit(jid, status) {
      var jRef = jobsArray[jid];
  
      var jobObj = jRef.obj;
      delete jobsArray[jid];
      var stdout = jobObj.stdout();
      var stderr = jobObj.stderr();
      /*force emulated to dump stdout/err*/
      if (jobObj.emulated) {
          async.parallel([function(callback) {
                          var fOut = jobObj.workDir + '/' + jobObj.id + '.err';
                          var errStream = fs.createWriteStream(fOut);
                          stderr.pipe(errStream).on('close', function() {
                              callback(null, fOut);
                          });
                      }, function(callback) {
                          var fOut = jobObj.workDir + '/' + jobObj.id + '.out';
                          var outStream = fs.createWriteStream(fOut);
                          stdout.pipe(outStream).on('close', function() {
                              callback(null, fOut);
                          });
                      }], // Once all stream have been consumed, get filesnames
                      function(err,results) {
                          var _stdout = fs.createReadStream(results[1]);
                          var _stderr = fs.createReadStream(results[0]);
                           jobObj.emit("completed", _stdout, _stderr, jobObj);
                      });
      } else {
          if(!status) {
              warehouse.store(jobObj);
              jobObj.emit("completed",
                  stdout, stderr, jobObj
              );
          } else {
              jobObj.emit("jobError",
                  stdout, stderr, jobObj
              );
          }
      }
  }
docs: /*
  We treat error state emission / document it for calling scope