| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- 'use strict'
 
- const fs = require('fs')
 
- const started = Date.now()
 
- module.exports = function (timeout, callback) {
 
-   callback = callback.bind(null, null, process.pid, Math.random(), timeout)
 
-   if (timeout)
 
-     return setTimeout(callback, timeout)
 
-   callback()
 
- }
 
- module.exports.args = function (callback) {
 
-   callback(null, {
 
-       argv     : process.argv
 
-     , cwd      : process.cwd()
 
-     , execArgv : process.execArgv
 
-   })
 
- }
 
- module.exports.run0 = function (callback) {
 
-   module.exports(0, callback)
 
- }
 
- module.exports.killable = function (id, callback) {
 
-   if (Math.random() < 0.5)
 
-     return process.exit(-1)
 
-   callback(null, id, process.pid)
 
- }
 
- module.exports.err = function (type, message, data, callback) {
 
-   if (typeof data == 'function') {
 
-     callback = data
 
-     data = null
 
-   } else {
 
-     let err = new Error(message)
 
-     Object.keys(data).forEach(function(key) {
 
-       err[key] = data[key]
 
-     })
 
-     callback(err)
 
-     return
 
-   }
 
-   if (type == 'TypeError')
 
-     return callback(new TypeError(message))
 
-   callback(new Error(message))
 
- }
 
- module.exports.block = function () {
 
-   while (true);
 
- }
 
- // use provided file path to save retries count among terminated workers
 
- module.exports.stubborn = function (path, callback) {
 
-   function isOutdated(path) {
 
-     return ((new Date).getTime() - fs.statSync(path).mtime.getTime()) > 2000
 
-   }
 
-   // file may not be properly deleted, check if modified no earler than two seconds ago
 
-   if (!fs.existsSync(path) || isOutdated(path)) {
 
-     fs.writeFileSync(path, '1')
 
-     process.exit(-1)
 
-   }
 
-   let retry = parseInt(fs.readFileSync(path, 'utf8'))
 
-   if (Number.isNaN(retry))
 
-     return callback(new Error('file contents is not a number'))
 
-   if (retry > 4) {
 
-     callback(null, 12)
 
-   } else {
 
-     fs.writeFileSync(path, String(retry + 1))
 
-     process.exit(-1)
 
-   }
 
- }
 
- module.exports.uptime = function (callback) {
 
-   callback(null, Date.now() - started)
 
- }
 
 
  |