Skip to content

Commit 6deea40

Browse files
committed
Fix eslint issues
1 parent 8c5b8bf commit 6deea40

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

JavaScript/9-web-locks.js

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ const threads = new Set();
99
const LOCKED = 0;
1010
const UNLOCKED = 1;
1111

12+
const locks = {
13+
resources: new Map()
14+
};
15+
1216
class Mutex {
1317
constructor(resourceName, shared, initial = false) {
1418
this.resourceName = resourceName;
@@ -45,39 +49,35 @@ class Mutex {
4549
}
4650
}
4751

48-
const locks = {
49-
resources: new Map(),
50-
51-
request: async (resourceName, callback) => {
52-
let lock = locks.resources.get(resourceName);
53-
if (!lock) {
54-
const buffer = new SharedArrayBuffer(4);
55-
lock = new Mutex(resourceName, buffer, true);
56-
locks.resources.set(resourceName, lock);
57-
locks.sendMessage({ kind: 'create', resourceName, buffer });
58-
}
59-
await lock.enter(callback);
60-
},
52+
locks.request = async (resourceName, callback) => {
53+
let lock = locks.resources.get(resourceName);
54+
if (!lock) {
55+
const buffer = new SharedArrayBuffer(4);
56+
lock = new Mutex(resourceName, buffer, true);
57+
locks.resources.set(resourceName, lock);
58+
locks.sendMessage({ kind: 'create', resourceName, buffer });
59+
}
60+
await lock.enter(callback);
61+
};
6162

62-
sendMessage: message => {
63-
if (isMainThread) {
64-
for (const thread of threads) {
65-
thread.worker.postMessage(message);
66-
}
67-
} else {
68-
parentPort.postMessage(message);
63+
locks.sendMessage = message => {
64+
if (isMainThread) {
65+
for (const thread of threads) {
66+
thread.worker.postMessage(message);
6967
}
70-
},
71-
72-
receiveMessage: message => {
73-
const { kind, resourceName, buffer } = message;
74-
if (kind === 'create') {
75-
const lock = new Mutex(resourceName, buffer);
76-
locks.resources.set(resourceName, lock);
77-
} else if (kind === 'leave') {
78-
for (const mutex of locks.resources) {
79-
if (mutex.trying) mutex.tryEnter();
80-
}
68+
} else {
69+
parentPort.postMessage(message);
70+
}
71+
};
72+
73+
locks.receiveMessage = message => {
74+
const { kind, resourceName, buffer } = message;
75+
if (kind === 'create') {
76+
const lock = new Mutex(resourceName, buffer);
77+
locks.resources.set(resourceName, lock);
78+
} else if (kind === 'leave') {
79+
for (const mutex of locks.resources) {
80+
if (mutex.trying) mutex.tryEnter();
8181
}
8282
}
8383
};
@@ -115,12 +115,12 @@ if (isMainThread) {
115115
} else {
116116

117117
locks.request('A', async lock => {
118-
console.log(`Enter A in ${threadId}`);
118+
console.log(`Enter ${lock.resourceName} in ${threadId}`);
119119
});
120120

121121
setTimeout(async () => {
122122
await locks.request('B', async lock => {
123-
console.log(`Enter B in ${threadId}`);
123+
console.log(`Enter ${lock.resourceName} in ${threadId}`);
124124
});
125125
console.log(`Leave all in ${threadId}`);
126126
}, 100);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy