@@ -9,41 +9,39 @@ describe('WorkerManager', () => {
99 const logger = new Logger ( 'WorkerManager Test' , LogLevel . WARN , [
1010 new StreamHandler ( ) ,
1111 ] ) ;
12- test ( 'construction has no side effects' , async ( ) => {
13- const workerManager = new WorkerManager < WorkerModule > ( { logger } ) ;
14- expect ( workerManager . call ( async ( ) => undefined ) ) . rejects . toThrow (
15- errors . ErrorWorkerManagerNotStarted ,
16- ) ;
17- } ) ;
18- test ( 'async start and async stop' , async ( ) => {
19- const workerManager = new WorkerManager < WorkerModule > ( { logger } ) ;
20- await workerManager . start ( {
12+ test ( 'async construction and async destroy' , async ( ) => {
13+ const workerManager = await WorkerManager . createWorkerManager < WorkerModule > ( {
2114 workerFactory : ( ) => spawn ( new Worker ( '../src/worker' ) ) ,
15+ logger
2216 } ) ;
17+ expect ( workerManager . running ) . toBe ( true ) ;
18+ expect ( workerManager . destroyed ) . toBe ( false ) ;
2319 expect ( await workerManager . call ( async ( ) => 1 ) ) . toBe ( 1 ) ;
24- await workerManager . stop ( ) ;
20+ await workerManager . destroy ( ) ;
21+ expect ( workerManager . running ) . toBe ( false ) ;
22+ expect ( workerManager . destroyed ) . toBe ( true ) ;
2523 expect ( workerManager . call ( async ( ) => 1 ) ) . rejects . toThrow (
26- errors . ErrorWorkerManagerNotStarted ,
24+ errors . ErrorWorkerManagerNotRunning ,
2725 ) ;
2826 } ) ;
2927 test ( 'start with just 1 worker core' , async ( ) => {
30- const workerManager = new WorkerManager < WorkerModule > ( { logger } ) ;
31- await workerManager . start ( {
28+ const workerManager = await WorkerManager . createWorkerManager < WorkerModule > ( {
3229 workerFactory : ( ) => spawn ( new Worker ( '../src/worker' ) ) ,
3330 cores : 1 ,
31+ logger
3432 } ) ;
3533 expect ( await workerManager . call ( async ( ) => 1 ) ) . toBe ( 1 ) ;
36- await workerManager . stop ( ) ;
34+ await workerManager . destroy ( ) ;
3735 } ) ;
3836 test ( 'call runs in the main thread' , async ( ) => {
3937 const mainPid1 = process . pid ;
40- const workerManager = new WorkerManager < WorkerModule > ( { logger } ) ;
41- await workerManager . start ( {
38+ const workerManager = await WorkerManager . createWorkerManager < WorkerModule > ( {
4239 workerFactory : ( ) => spawn ( new Worker ( '../src/worker' ) ) ,
4340 cores : 1 ,
41+ logger
4442 } ) ;
45- let mainPid2 ;
46- let mainPid3 ;
43+ let mainPid2 : number ;
44+ let mainPid3 : number ;
4745 // Only `w.f()` functions are running in the worker threads
4846 // the callback passed to `call` is still running in the main thread
4947 expect (
@@ -54,16 +52,16 @@ describe('WorkerManager', () => {
5452 return await w . isRunningInWorker ( ) ;
5553 } ) ,
5654 ) . toBe ( true ) ;
57- await workerManager . stop ( ) ;
58- expect ( mainPid2 ) . toBe ( mainPid1 ) ;
59- expect ( mainPid3 ) . toBe ( mainPid1 ) ;
55+ await workerManager . destroy ( ) ;
56+ expect ( mainPid2 ! ) . toBe ( mainPid1 ) ;
57+ expect ( mainPid3 ! ) . toBe ( mainPid1 ) ;
6058 } ) ;
6159 test ( 'can await a subset of tasks' , async ( ) => {
62- const workerManager = new WorkerManager < WorkerModule > ( { logger } ) ;
6360 // Use all possible cores
6461 // if you only use 1 core, this test will be much slower
65- await workerManager . start ( {
62+ const workerManager = await WorkerManager . createWorkerManager < WorkerModule > ( {
6663 workerFactory : ( ) => spawn ( new Worker ( '../src/worker' ) ) ,
64+ logger
6765 } ) ;
6866 const task = workerManager . call ( async ( w ) => {
6967 return await w . sleep ( 500 ) ;
@@ -82,14 +80,14 @@ describe('WorkerManager', () => {
8280 expect ( rs . every ( ( x ) => x === undefined ) ) . toBe ( true ) ;
8381 const r = await task ;
8482 expect ( r ) . toBeUndefined ( ) ;
85- await workerManager . stop ( ) ;
83+ await workerManager . destroy ( ) ;
8684 } ) ;
8785 test ( 'queueing up tasks' , async ( ) => {
88- const workerManager = new WorkerManager < WorkerModule > ( { logger } ) ;
8986 // Use all possible cores
9087 // if you only use 1 core, this test will be much slower
91- await workerManager . start ( {
88+ const workerManager = await WorkerManager . createWorkerManager < WorkerModule > ( {
9289 workerFactory : ( ) => spawn ( new Worker ( '../src/worker' ) ) ,
90+ logger
9391 } ) ;
9492 const t1 = workerManager . queue ( async ( w ) => await w . sleep ( 500 ) ) ;
9593 const t2 = workerManager . queue ( async ( w ) => await w . sleep ( 500 ) ) ;
@@ -106,13 +104,13 @@ describe('WorkerManager', () => {
106104 workerManager . queue ( async ( w ) => await w . sleep ( 500 ) ) ;
107105 const es = await workerManager . settled ( ) ;
108106 expect ( es . length ) . toBe ( 0 ) ;
109- await workerManager . stop ( ) ;
107+ await workerManager . destroy ( ) ;
110108 } ) ;
111109 test ( 'zero-copy buffer transfer' , async ( ) => {
112- const workerManager = new WorkerManager < WorkerModule > ( { logger } ) ;
113- await workerManager . start ( {
110+ const workerManager = await WorkerManager . createWorkerManager < WorkerModule > ( {
114111 workerFactory : ( ) => spawn ( new Worker ( '../src/worker' ) ) ,
115112 cores : 1 ,
113+ logger
116114 } ) ;
117115 const buffer = await workerManager . call ( async ( w ) => {
118116 // Start with a Node Buffer that is "pooled"
@@ -138,6 +136,6 @@ describe('WorkerManager', () => {
138136 return outputBuffer ;
139137 } ) ;
140138 expect ( buffer ) . toEqual ( Buffer . from ( 'hello 2' ) ) ;
141- await workerManager . stop ( ) ;
139+ await workerManager . destroy ( ) ;
142140 } ) ;
143141} ) ;
0 commit comments