[web] Fix race condition in initialization of search worker (#1772)
During app init, two worker instances would get created in some cases and two getInstances raced because of the await. This was causing the search results to be empty until the page is reloaded (since the files array was empty in the worker that got assigned, but the files would get set to the other worker instance that lost the race).
This commit is contained in:
commit
531547cd48
1 changed files with 4 additions and 2 deletions
|
@ -5,11 +5,13 @@ import { type DedicatedSearchWorker } from "worker/search.worker";
|
|||
|
||||
class ComlinkSearchWorker {
|
||||
private comlinkWorkerInstance: Remote<DedicatedSearchWorker>;
|
||||
private comlinkWorker: ComlinkWorker<typeof DedicatedSearchWorker>;
|
||||
|
||||
async getInstance() {
|
||||
if (!this.comlinkWorkerInstance) {
|
||||
this.comlinkWorkerInstance =
|
||||
await getDedicatedSearchWorker().remote;
|
||||
if (!this.comlinkWorker)
|
||||
this.comlinkWorker = getDedicatedSearchWorker();
|
||||
this.comlinkWorkerInstance = await this.comlinkWorker.remote;
|
||||
}
|
||||
return this.comlinkWorkerInstance;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue