aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/lockfile/sockets.md
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/node_modules/lockfile/sockets.md')
-rw-r--r--deps/node/deps/npm/node_modules/lockfile/sockets.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/deps/node/deps/npm/node_modules/lockfile/sockets.md b/deps/node/deps/npm/node_modules/lockfile/sockets.md
new file mode 100644
index 00000000..89b60eeb
--- /dev/null
+++ b/deps/node/deps/npm/node_modules/lockfile/sockets.md
@@ -0,0 +1,27 @@
+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)