Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/generic-pool/lib/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
"use strict"; const Deferred = require("./Deferred"); const errors = require("./errors"); function fbind(fn, ctx) { return function bound() { return fn.apply(ctx, arguments); }; } /** * Wraps a users request for a resource * Basically a promise mashed in with a timeout * @private */ class ResourceRequest extends Deferred { /** * [constructor description] * @param {Number} ttl timeout */ constructor(ttl, Promise) { super(Promise); this._creationTimestamp = Date.now(); this._timeout = null; if (ttl !== undefined) { this.setTimeout(ttl); } } setTimeout(delay) { if (this._state !== ResourceRequest.PENDING) { return; } const ttl = parseInt(delay, 10); if (isNaN(ttl) || ttl <= 0) { throw new Error("delay must be a positive int"); } const age = Date.now() - this._creationTimestamp; if (this._timeout) { this.removeTimeout(); } this._timeout = setTimeout( fbind(this._fireTimeout, this), Math.max(ttl - age, 0) ); } removeTimeout() { if (this._timeout) { clearTimeout(this._timeout); } this._timeout = null; } _fireTimeout() { this.reject(new errors.TimeoutError("ResourceRequest timed out")); } reject(reason) { this.removeTimeout(); super.reject(reason); } resolve(value) { this.removeTimeout(); super.resolve(value); } } module.exports = ResourceRequest;