Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Update README.

  • Loading branch information...
commit b5b4676ae358d8c0fe1b12b4aa32a384c0a38133 1 parent 60dc082
@jaredhanson authored
Showing with 34 additions and 1 deletion.
  1. +34 −1
@@ -1,6 +1,39 @@
# Function Pool
-A simple worker pool in JavaScript, targeting Node.js.
+Function Pool provides a fixed-size pool that can be used to execute potentially
+expensive tasks in Node.js.
+Conceptually similar to a [thread pool](,
+but adapted to Node's single-threaded model, Function Pool organizes tasks into
+a queue, which will be executed by a limited number of workers. The number of
+workers corresponds to the number of tasks that will be allowed to execute
+concurrently. After the limit has been reached, tasks will be queued and
+executed when prior tasks complete.
+## Installation
+ $ npm install functionpool
+## Usage
+#### Allocate a Pool
+Create a new pool, specifying the maximum number of workers in the `size`
+option. The worker function must accept a `done` callback, which it must
+call with the result when it completes work (or error, if an exception occurs).
+ var pool = new functionpool.Pool({ size: 4 }, function(x, y, done) {
+ setTimeout(function() { done(null, x + y) }, 5000);
+ });
+#### Add Tasks to the Pool
+Add tasks to the pool, which will be executed if workers are available and
+queued for later execution otherwise.
+ pool.task(3, 14, function(err, res) {
+ console.log('3 + 14 = ' + res);
+ });
## Credits
Please sign in to comment.
Something went wrong with that request. Please try again.