We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 7feecf9 commit 4e6eb10Copy full SHA for 4e6eb10
1 file changed
lib/ldp.js
@@ -17,6 +17,7 @@ const parse = require('./utils').parse
17
const fetch = require('node-fetch')
18
const { promisify } = require('util')
19
const URI = require('urijs')
20
+const { lock } = require('proper-lockfile')
21
22
const RDF_MIME_TYPES = new Set([
23
'text/turtle', // .ttl
@@ -95,11 +96,17 @@ class LDP {
95
96
}
97
98
async readResource (url) {
99
+ let releaseLock
100
try {
101
const { path } = await this.resourceMapper.mapUrlToFile({ url })
102
+ releaseLock = await lock(path, { retries: 10 })
103
return await promisify(fs.readFile)(path, {encoding: 'utf8'})
104
} catch (err) {
105
throw error(err.status, err.message)
106
+ } finally {
107
+ if (releaseLock) {
108
+ await releaseLock()
109
+ }
110
111
112
0 commit comments