to ACQUIRE(lockname)
- create server, listen on lockname
- if enotsock, WATCH(lockname)
- if eaddrinuse,
- CONNECT(lockname)
- unref server
- lock has been acquired via server
! on connection, place sockets in queue
to RELEASE(lockname)
- if acquired via connection
- disconnect
- if acquired via server
- send "OK" to front-most connection
- when connection disconnects, RELEASE(lockname)
- if acquired via filename
- unlink file
to CONNECT(lockname)
- net.connect(lockname)
- if enoent or socket termination, ACQUIRE(lockname)
- when server says "OK",
- lock has been acquired via connection
to WATCH(lockname)
- fs.watch(lockname)
- on change, ACQUIRE(lockname)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| .travis.yml | File | 126 B | 0644 |
|
| CHANGELOG.md | File | 1.78 KB | 0644 |
|
| LICENSE | File | 765 B | 0644 |
|
| README.md | File | 2.03 KB | 0644 |
|
| gen-changelog.sh | File | 238 B | 0644 |
|
| lockfile.js | File | 8.22 KB | 0644 |
|
| package.json | File | 1.69 KB | 0644 |
|
| sockets.md | File | 700 B | 0644 |
|
| speedtest.js | File | 1.35 KB | 0644 |
|