code: function Turnstile (options) {
      options = coalesce(options, {})
      this.destroyed = false
      this._head = {}
      this._head.next = this._head.previous = this._head
      this.health = {
          occupied: 0,
          waiting: 0,
          rejecting: 0,
          turnstiles: coalesce(options.turnstiles, 1)
      }
      this._listener = abend
      this._callback = null
      this.errors = []
      this.health.occupied = 0
      this.health.waiting = 0
      this.health.rejecting = 0
      this.timeout = coalesce(options.timeout, Infinity)
      this._Date = coalesce(options.Date, Date)
  }
docs: Construct a turnstile.  `options`  * `turnstiles` ~ number of concurrent invocations of the worker function. * `timeout` ~ time in millisecond before marking a task as timedout and invoking the worker function for task cancelation. * `Date` ~ provide a dummy date implementation, useful for unit testing task timeouts.