New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

dok-pool

Package Overview
Dependencies
Maintainers
0
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dok-pool

Resource pool for games.

latest
Source
npmnpm
Version
1.0.77
Version published
Maintainers
0
Created
Source

dok-pool

Resource pool for games.

Bump Version CodeQL Create Release Node.js Package

Overview

This object is a resource pool for games. Resource pool are used to avoid re-allocating objects constantly, by basically recycling them.

  • Here, the pool provides objects with pool.get(). The first time, when the pool is empty, it will allocate for each pool.get().
  • Then when all objects are used (generally at the end of a game loop), the pool gets reset (pool.reset()).
  • Now every new call to pool.get() will simply reused an allocated object. (as they are some allocated objects).

Usage:

function creatorFunction() {
    return { foo: null, bar: null };
}

function initFunction(elem) {
   elem.foo = null;
   elem.bar = null;
}

const pool = new Pool(creatorFunction, initFunction);

function loop() {
   const a = pool.get(true);
   const b = pool.get(true);
   const c = pool.get(true);
   //...
   pool.reset();
   requestAnimationFrame(loop);
}
loop();

//  while you constantly call the loop, the pool lets you create new objects without allocating them.

Methods:

pool.get();         // returns an object, either retrieving a used object or allocates a new one.
pool.get(true);     // returns an object and call the "init" function provided in the constructor. By default, it's false. It does help for performance if you don't have to constantly call init.
pool.reset();       // all objects of the pool used so far are now marked as reusable. So a call to pool.get() will retrieve from the object already used.

pool.recycle(obj);  // sometimes, an object got allocated outside the resource pool. We can just recycle that object into the resource pool, so that pool.get() will just return that object.

Warning:

This is how not to use the resource pool:

const a = pool.get();

pool.reset();

const b = pool.get();

// now, a and b likely point to the same object, or maybe not. It's probably not what you want to achieve.



Keywords

dok

FAQs

Package last updated on 10 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts