Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

2pl

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

2pl

Two-phase locking for asynchronous JavaScript executions.

  • 1.2.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

2PL

In-memory two-phase locking for asynchronous JavaScript functions.

Build Status

npm install 2pl

Multiple lock keys can be acquired during the lifetime of a lock instance, where release is done in one operation.

var lock = require('2pl')
var shared = {} // in-memory lock object shared across instances

var l = lock(shared, { ttl: 5000 }) // new instance, 5 seconds timeout

l.acquire('a', function (err) {
  // a is locked
  l.acquire('b', function (err) {
    // b is locked
    l.release(function (err) {
      // a and b are released
    })
  })
})

API

var l = lock(shared, [options])

Create a new instance with shared object holding the in-memory locks. Accepts following options:

  • ttl: Time to live (milliseconds) of lock instance for liveness. Defaults to 20 seconds.

l.acquire(key, [callback])

Attempts to acquire a lock, given a string key. Accepts an optional callback function, invoked on success or error.

l.extend(ttl, [callback])

Attempts to extend ttl of lock in milliseconds. Accepts an optional callback function, invoked on success or error.

l.release([callback])

Attempts to release lock. Accepts an optional callback function, invoked on success or error.

var createLock = lock.creator([options])

Returns a factory function createLock([options]) that create instances under the same shared lock object.

var createLock = lock.creator({ ttl: 5000 })

var l1 = createLock() // ttl 5000
var l2 = createLock({ ttl: 500 }) // ttl 500

License

MIT

FAQs

Package last updated on 01 Jul 2016

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc