fcf-framework-lock
Version:
Provides file locking and named mutex functionality
61 lines (48 loc) • 1.24 kB
JavaScript
let libFS = require("fs");
let libLock = require("../index.js");
async function main(){
let file = libFS.openSync("./tests/files/test", "w");
libFS.closeSync(file);
let lock1 = await new Promise((a_resolve, a_reject) => {
libLock.lockFile("./tests/files/test", (a_error, a_lock)=>{
if (a_error){
a_reject(a_error);
} else {
a_resolve(a_lock);
}
})
});
let fd2 = libFS.openSync("./tests/files/test", "r");
let fd3 = libFS.openSync("./tests/files/test", "r");
setTimeout(()=>{
console.log("remove!");
libLock.unlockFile(lock1, ()=>{
libFS.unlinkSync("./tests/files/test");
});
}, 10);
let lock2 = await new Promise((a_resolve, a_reject) => {
libLock.lockFile(fd2, (a_error, a_lock)=>{
console.log("lock2");
if (a_error){
a_reject(a_error);
} else {
a_resolve(a_lock);
}
})
});
setTimeout(()=>{
libFS.close(lock2, ()=>{
});
}, 1);
let lock3 = await new Promise((a_resolve, a_reject) => {
libLock.lockFile(fd3, (a_error, a_lock)=>{
console.log("lock3");
if (a_error){
a_reject(a_error);
} else {
a_resolve(a_lock);
}
})
});
}
main();