• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1to ACQUIRE(lockname)
2- create server, listen on lockname
3  - if enotsock, WATCH(lockname)
4  - if eaddrinuse,
5    - CONNECT(lockname)
6  - unref server
7  - lock has been acquired via server
8  ! on connection, place sockets in queue
9
10to RELEASE(lockname)
11- if acquired via connection
12  - disconnect
13- if acquired via server
14  - send "OK" to front-most connection
15    - when connection disconnects, RELEASE(lockname)
16- if acquired via filename
17  - unlink file
18
19to CONNECT(lockname)
20- net.connect(lockname)
21  - if enoent or socket termination, ACQUIRE(lockname)
22  - when server says "OK",
23    - lock has been acquired via connection
24
25to WATCH(lockname)
26- fs.watch(lockname)
27- on change, ACQUIRE(lockname)
28