···655655- **Type:** `Record<'threads' | 'forks' | 'vmThreads', {}>`
656656- **Default:** `{}`
657657658658-#### poolOptions.threads<NonProjectOption />
658658+#### poolOptions.threads
659659660660Options for `threads` pool.
661661···687687688688Minimum number of threads. You can also use `VITEST_MIN_THREADS` environment variable.
689689690690-##### poolOptions.threads.singleThread<NonProjectOption />
690690+##### poolOptions.threads.singleThread
691691692692- **Type:** `boolean`
693693- **Default:** `false`
···710710711711This can improve performance in some cases, but might cause segfault in older Node versions.
712712713713-##### poolOptions.threads.isolate<NonProjectOption />
713713+##### poolOptions.threads.isolate
714714715715- **Type:** `boolean`
716716- **Default:** `true`
···728728Be careful when using, it as some options may crash worker, e.g. --prof, --title. See https://github.com/nodejs/node/issues/41103.
729729:::
730730731731-#### poolOptions.forks<NonProjectOption />
731731+#### poolOptions.forks
732732733733Options for `forks` pool.
734734···760760761761Minimum number of forks.
762762763763-##### poolOptions.forks.isolate<NonProjectOption />
763763+##### poolOptions.forks.isolate
764764765765- **Type:** `boolean`
766766- **Default:** `true`
767767768768Isolate environment for each test file.
769769770770-##### poolOptions.forks.singleFork<NonProjectOption />
770770+##### poolOptions.forks.singleFork
771771772772- **Type:** `boolean`
773773- **Default:** `false`
···792792Be careful when using, it as some options may crash worker, e.g. --prof, --title. See https://github.com/nodejs/node/issues/41103.
793793:::
794794795795-#### poolOptions.vmThreads<NonProjectOption />
795795+#### poolOptions.vmThreads
796796797797Options for `vmThreads` pool.
798798
···11+import { isMainThread } from 'node:worker_threads'
22+import { expect, test } from 'vitest'
33+44+test('is run in "node:child_process"', () => {
55+ expect(isChildProcess()).toBe(true)
66+ expect(isMainThread).toBe(true)
77+})
88+99+// TODO: Use from "src/utils/base.ts" after #4441
1010+function isChildProcess(): boolean {
1111+ return !!process?.send
1212+}
+15
test/workspaces/space-pools/isolate.test.ts
···11+import { expect, test } from 'vitest'
22+import type { UserConfig } from 'vitest/config'
33+44+test('is isolated', () => {
55+ // @ts-expect-error -- internal
66+ const config: NonNullable<UserConfig['test']> = globalThis.__vitest_worker__.config
77+88+ if (config.pool === 'forks') {
99+ expect(config.poolOptions?.forks?.isolate).toBe(true)
1010+ }
1111+ else {
1212+ expect(config.pool).toBe('threads')
1313+ expect(config.poolOptions?.threads?.isolate).toBe(true)
1414+ }
1515+})
+15
test/workspaces/space-pools/multi-worker.test.ts
···11+import { expect, test } from 'vitest'
22+import type { UserConfig } from 'vitest/config'
33+44+test('is multi worker', () => {
55+ // @ts-expect-error -- internal
66+ const config: NonNullable<UserConfig['test']> = globalThis.__vitest_worker__.config
77+88+ if (config.pool === 'forks') {
99+ expect(config.poolOptions?.forks?.singleFork).toBe(false)
1010+ }
1111+ else {
1212+ expect(config.pool).toBe('threads')
1313+ expect(config.poolOptions?.threads?.singleThread).toBe(false)
1414+ }
1515+})
+15
test/workspaces/space-pools/no-isolate.test.ts
···11+import { expect, test } from 'vitest'
22+import type { UserConfig } from 'vitest/config'
33+44+test('is not isolated', () => {
55+ // @ts-expect-error -- internal
66+ const config: NonNullable<UserConfig['test']> = globalThis.__vitest_worker__.config
77+88+ if (config.pool === 'forks') {
99+ expect(config.poolOptions?.forks?.isolate).toBe(false)
1010+ }
1111+ else {
1212+ expect(config.pool).toBe('threads')
1313+ expect(config.poolOptions?.threads?.isolate).toBe(false)
1414+ }
1515+})
+15
test/workspaces/space-pools/single-worker.test.ts
···11+import { expect, test } from 'vitest'
22+import type { UserConfig } from 'vitest/config'
33+44+test('is single worker', () => {
55+ // @ts-expect-error -- internal
66+ const config: NonNullable<UserConfig['test']> = globalThis.__vitest_worker__.config
77+88+ if (config.pool === 'forks') {
99+ expect(config.poolOptions?.forks?.singleFork).toBe(true)
1010+ }
1111+ else {
1212+ expect(config.pool).toBe('threads')
1313+ expect(config.poolOptions?.threads?.singleThread).toBe(true)
1414+ }
1515+})
+12
test/workspaces/space-pools/threads.test.ts
···11+import { isMainThread } from 'node:worker_threads'
22+import { expect, test } from 'vitest'
33+44+test('is run in "node:worker_threads"', () => {
55+ expect(isChildProcess()).toBe(false)
66+ expect(isMainThread).toBe(false)
77+})
88+99+// TODO: Use from "src/utils/base.ts" after #4441
1010+function isChildProcess(): boolean {
1111+ return !!process?.send
1212+}