shared-memory
Version:
A k-v database using /shm/ to shared memory
28 lines (22 loc) • 464 B
text/coffeescript
fs = require 'fs'
class Filelock
constructor: ->
_try: (path, cb) ->
try
@_do path, cb
catch e
console.log e, 'xxxxxxx'
@lock path, cb
_do: (path, cb) ->
_this = @
fs.open path, 'wx', (err, fd) ->
if err
_this.lock path, cb
else
fs.close fd, cb
lock: (path, cb) ->
process.nextTick =>
@_try path, cb
unlock: (path, cb) ->
fs.unlink path, cb
module.exports = new Filelock()