Fix race condition on getMyProcesses
This commit is contained in:
parent
7c39795cef
commit
926f41d270
@ -1351,21 +1351,23 @@ export default class Services {
|
||||
try {
|
||||
const processes = await this.getProcesses();
|
||||
|
||||
const newMyProcesses = new Set<string>(this.myProcesses || []);
|
||||
for (const [processId, process] of Object.entries(processes)) {
|
||||
// We use myProcesses attribute to not reevaluate all processes everytime
|
||||
if (this.myProcesses && this.myProcesses.has(processId)) {
|
||||
if (newMyProcesses.has(processId)) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
const roles = this.getRoles(process);
|
||||
|
||||
if (roles && this.rolesContainsUs(roles)) {
|
||||
this.myProcesses.add(processId);
|
||||
newMyProcesses.add(processId);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
this.myProcesses = newMyProcesses; // atomic update
|
||||
return Array.from(this.myProcesses);
|
||||
} catch (e) {
|
||||
console.error("Failed to get processes:", e);
|
||||
|
Loading…
x
Reference in New Issue
Block a user