|
101 | 101 | </div>
|
102 | 102 | <div v-else class="text-center text-italic">{{ $t('Receive.fetching-latest') }}</div>
|
103 | 103 | </div>
|
| 104 | + <base-button @click="terminateWorkers()" class="text-center" label="stop workers" /> |
104 | 105 | </div>
|
105 | 106 | </q-page>
|
106 | 107 | </template>
|
@@ -130,6 +131,7 @@ function useScan() {
|
130 | 131 | const scanStatus = ref<ScanStatus>('waiting');
|
131 | 132 | const scanPercentage = ref<number>(0);
|
132 | 133 | const userAnnouncements = ref<UserAnnouncement[]>([]);
|
| 134 | + const workers: Worker[] = []; |
133 | 135 |
|
134 | 136 | // Start and end blocks for advanced mode settings
|
135 | 137 | const { advancedMode, startBlock, endBlock, setScanBlocks, setScanPrivateKey, scanPrivateKey, resetScanSettings } =
|
@@ -199,6 +201,10 @@ function useScan() {
|
199 | 201 | await scan();
|
200 | 202 | }
|
201 | 203 |
|
| 204 | + function terminateWorkers() { |
| 205 | + workers.forEach((worker) => worker.terminate()); |
| 206 | + } |
| 207 | +
|
202 | 208 | async function scan() {
|
203 | 209 | if (!umbra.value) throw new Error('No umbra instance found. Please make sure you are on a supported network');
|
204 | 210 | scanStatus.value = 'fetching latest';
|
@@ -228,6 +234,7 @@ function useScan() {
|
228 | 234 | spendingPublicKey,
|
229 | 235 | viewingPrivateKey,
|
230 | 236 | announcements,
|
| 237 | + workers, |
231 | 238 | (percent) => {
|
232 | 239 | scanPercentage.value = Math.floor(percent);
|
233 | 240 | },
|
@@ -296,6 +303,9 @@ function useScan() {
|
296 | 303 | }
|
297 | 304 | // Wait for the first batch of web workers to finish scanning before creating new workers
|
298 | 305 | await firstScanPromise;
|
| 306 | + terminateWorkers(); |
| 307 | + // Clear out existing workers |
| 308 | + workers.length = 0; |
299 | 309 | scanStatus.value = 'scanning';
|
300 | 310 | await filterUserAnnouncementsAsync(spendingPubKey, viewingPrivKey, announcementsQueue);
|
301 | 311 | scanStatus.value = 'complete';
|
@@ -337,6 +347,7 @@ function useScan() {
|
337 | 347 | startBlockLocal,
|
338 | 348 | userAddress,
|
339 | 349 | userAnnouncements,
|
| 350 | + terminateWorkers, |
340 | 351 | };
|
341 | 352 | }
|
342 | 353 |
|
|
0 commit comments