@@ -28,7 +28,7 @@ if (cluster.isMaster) {
28
28
pool . delete ( worker . id )
29
29
let cb = _callbacks . get ( this )
30
30
if ( cb ) {
31
- return cb ( new Error ( 'Worker Exited Unexpectedly' ) )
31
+ cb ( new Error ( 'Worker Exited Unexpectedly' ) )
32
32
}
33
33
return spawnWorker ( )
34
34
} )
@@ -78,35 +78,47 @@ if (cluster.isMaster) {
78
78
}
79
79
}
80
80
content ( temps , cb ) {
81
- let worker = this . _freeWorker ( )
82
- if ( worker ) {
83
- _callbacks . set ( worker , cb )
84
- worker . send ( { type : type . content , temps} )
85
- } else {
86
- let queue = _queue . get ( this )
87
- queue . unshift ( { type : type . content , temps, cb : cb } )
81
+ try {
82
+ let worker = this . _freeWorker ( )
83
+ if ( worker ) {
84
+ _callbacks . set ( worker , cb )
85
+ worker . send ( { type : type . content , temps } )
86
+ } else {
87
+ let queue = _queue . get ( this )
88
+ queue . unshift ( { type : type . content , temps, cb : cb } )
89
+ }
90
+ } catch ( err ) {
91
+ return cb ( err )
88
92
}
89
93
}
90
94
91
- contentFilter ( temps , cb ) {
92
- let worker = this . _freeWorker ( )
93
- if ( worker ) {
94
- _callbacks . set ( worker , cb )
95
- worker . send ( { type : type . contentFilter , temps} )
96
- } else {
97
- let queue = _queue . get ( this )
98
- queue . unshift ( { type : type . contentFilter , temps, cb : cb } )
95
+ contentFilter ( temps , cb ) {
96
+ try {
97
+ let worker = this . _freeWorker ( )
98
+ if ( worker ) {
99
+ _callbacks . set ( worker , cb )
100
+ worker . send ( { type : type . contentFilter , temps } )
101
+ } else {
102
+ let queue = _queue . get ( this )
103
+ queue . unshift ( { type : type . contentFilter , temps, cb : cb } )
104
+ }
105
+ } catch ( err ) {
106
+ return cb ( err )
99
107
}
100
108
}
101
109
102
110
closestBlock ( temps , key , filter , cb ) {
103
- let worker = this . _freeWorker ( )
104
- if ( worker ) {
105
- _callbacks . set ( worker , cb )
106
- worker . send ( { type : type . closestBlock , temps, key, filter} )
107
- } else {
108
- let queue = _queue . get ( this )
109
- queue . unshift ( { type : type . closestBlock , temps, key, filter, cb : cb } )
111
+ try {
112
+ let worker = this . _freeWorker ( )
113
+ if ( worker ) {
114
+ _callbacks . set ( worker , cb )
115
+ worker . send ( { type : type . closestBlock , temps, key, filter } )
116
+ } else {
117
+ let queue = _queue . get ( this )
118
+ queue . unshift ( { type : type . closestBlock , temps, key, filter, cb : cb } )
119
+ }
120
+ } catch ( err ) {
121
+ return cb ( err )
110
122
}
111
123
}
112
124
_free ( threadId ) {
@@ -116,9 +128,14 @@ if (cluster.isMaster) {
116
128
if ( next ) {
117
129
let pool = _pool . get ( this )
118
130
let worker = pool . get ( threadId )
119
- _callbacks . set ( worker , next . cb )
131
+ let cb = next . cb
132
+ _callbacks . set ( worker , cb )
120
133
delete next . cb
121
- worker . send ( { ...next } )
134
+ try {
135
+ worker . send ( { ...next } )
136
+ } catch ( err ) {
137
+ return cb ( err )
138
+ }
122
139
}
123
140
} )
124
141
}
0 commit comments