@@ -3,36 +3,29 @@ const { Worker, isMainThread } = require('node:worker_threads');
3
3
const SharedData = require ( "./SharedData" ) ;
4
4
5
5
module . exports = class MainWorker {
6
- #group;
6
+ #group = { } ;
7
7
#sharedData = { } ;
8
- /**
9
- * @param {Object } params
10
- * @param {Object[] } params.group
11
- * @param {string } params.group[].name
12
- * @param {string } params.group[].path
13
- * @param {Object } [params.group[].workerData]
14
- * @param {string } [params.group[].workerDataLink]
15
- * @param {number } params.group[].mutex
16
- * @param {Object } params.sharedData
17
- * @param {number } params.sharedData.length Size BufferArray
18
- * @param {'int8'|'int16'|'int32'|'uint8'|'uint16'|'uint32'|'float32'|'float64' } params.sharedData.type Type BufferArray
19
- */
20
- constructor ( { group = [ ] , sharedData, mutex = 1 } ) {
21
- this . path = __filename ;
22
- this . #group = Object . assign ( { } , ...group . map ( ( { name, path, workerData, workerDataLink } ) => {
23
- if ( workerDataLink ) {
24
- this . #sharedData[ name ] = this . #sharedData[ workerDataLink ] ;
25
- return { [ name ] : new Worker ( path , { workerData : { sharedData : sharedData , value : this . #sharedData[ name ] . na_get ( ) } } ) } ;
26
- }
27
- if ( sharedData ) {
28
- if ( mutex < 1 ) return Error ( "MainWorker: mutex can not less one - " + name ) ;
29
- this . #sharedData[ name ] = new SharedData ( sharedData . length , sharedData . type ) ;
30
- this . #sharedData[ name ] . mutex ( mutex ) ;
31
- this . #sharedData[ name ] . add ( workerData ) ;
32
- return { [ name ] : new Worker ( path , { workerData : { sharedData : sharedData , value : this . #sharedData[ name ] . na_get ( ) } } ) } ;
33
- }
34
- return { [ name ] : new Worker ( path ) } ;
35
- } ) ) ;
8
+ constructor ( params ) {
9
+ if ( params ) {
10
+ const { group = [ ] , sharedData, mutex = 1 } = params ;
11
+ this . path = __filename ;
12
+ this . #group = Object . assign ( { } , ...group . map ( ( { name, path, workerData, workerDataLink } ) => {
13
+ if ( workerDataLink ) {
14
+ this . #sharedData[ name ] = this . #sharedData[ workerDataLink ] ;
15
+ return { [ name ] : new Worker ( path , { workerData : { sharedData : sharedData , value : this . #sharedData[ name ] . na_get ( ) } } ) } ;
16
+ }
17
+ if ( sharedData ) {
18
+ if ( mutex < 1 ) return Error ( "MainWorker: mutex can not less one - " + name ) ;
19
+ this . #sharedData[ name ] = new SharedData ( sharedData . length , sharedData . type ) ;
20
+ // this.#sharedData[name].mutex(mutex);
21
+ this . #sharedData[ name ] . na_add ( workerData ) ;
22
+ return { [ name ] : new Worker ( path , { workerData : this . #sharedData[ name ] . na_get ( ) } ) } ;
23
+ }
24
+ return { [ name ] : new Worker ( path ) } ;
25
+ } ) ) ;
26
+ } else {
27
+
28
+ }
36
29
}
37
30
38
31
/**
@@ -63,7 +56,7 @@ module.exports = class MainWorker {
63
56
* @param {* } callback
64
57
* @description Event "message"
65
58
*/
66
- onceMessage ( name , callback ) {
59
+ onceMessage ( name , callback ) {
67
60
if ( ! this . #group[ name ] ) {
68
61
return Error ( "AddWorker: not found this name group - " + name ) ;
69
62
}
@@ -100,11 +93,15 @@ module.exports = class MainWorker {
100
93
* @param {* } callback Fuction callback
101
94
* @description Using for getting share data
102
95
*/
103
- getSharedData ( name , callback ) {
96
+ getSharedData ( name ) {
104
97
if ( ! this . #group[ name ] ) {
105
98
return Error ( "AddWorker: not found this name group - " + name ) ;
106
99
}
107
- callback ( this . #sharedData[ name ] . deserialize ( ) ) ;
100
+ return this . #sharedData[ name ] . deserialize ( )
101
+ }
102
+
103
+ setSharedData ( name , msg ) {
104
+ this . #sharedData[ name ] . na_add ( msg ) ;
108
105
}
109
106
110
107
/**
@@ -118,33 +115,33 @@ module.exports = class MainWorker {
118
115
* @param {number } params.sharedData.length Size BufferArray
119
116
* @param {'int8'|'int16'|'int32'|'uint8'|'uint16'|'uint32'|'float32'|'float64' } params.sharedData.type Type BufferArray
120
117
*/
121
- newThread ( { name, path, workerData, sharedData = { length : 1024 , type : "int32" } , workerDataLink, mutex = 1 } ) {
118
+ newThread ( params ) {
119
+ const { name, path, workerData, sharedData = { length : 1024 , type : "int32" } , workerDataLink, mutex = 1 } = params ;
122
120
if ( this . #group[ name ] !== undefined ) return Error ( "It's name using" ) ;
123
121
if ( workerDataLink ) {
124
122
this . #group[ name ] = new Worker ( path , this . #sharedData[ workerDataLink ] ) ;
125
123
return ;
126
124
}
127
125
if ( workerData ) {
128
126
const shar = new SharedData ( sharedData . length , sharedData . type ) ;
129
- shar . mutex ( mutex ) ;
130
- shar . add ( workerData ) ;
127
+ // shar.mutex(mutex);
128
+ shar . na_add ( workerData ) ;
131
129
this . #sharedData[ name ] = shar ;
132
- this . #group[ name ] = new Worker ( path , { workerData : { sharedData : sharedData , value : this . #sharedData[ name ] . na_get ( ) } } ) ;
130
+ this . #group[ name ] = new Worker ( path , { workerData : this . #sharedData[ name ] . na_get ( ) } ) ;
133
131
return ;
134
132
}
135
133
const shar = new SharedData ( sharedData . length , sharedData . type ) ;
136
- shar . add ( { } ) ;
137
- shar . mutex ( mutex ) ;
134
+ shar . na_add ( { } ) ;
135
+ // shar.mutex(mutex);
138
136
this . #sharedData[ name ] = shar ;
139
137
this . #group[ name ] = new Worker ( path , { workerData : { sharedData : sharedData , value : this . #sharedData[ name ] . na_get ( ) } } ) ;
140
138
}
141
139
142
- spawn ( callback ) {
143
- if ( isMainThread ) {
140
+ spawn ( callback ) {
141
+ if ( isMainThread ) {
144
142
new Worker ( ( new Error ( ) ) . stack . split ( "\n" ) [ 2 ] . split ( "/" ) . join ( "/" ) . split ( "(" ) [ 1 ] . split ( ":" ) [ 0 ] ) ;
145
- } else {
143
+ } else {
146
144
return callback ( ) ;
147
145
}
148
146
}
149
- pool ( ) { }
150
147
}
0 commit comments