@@ -38,7 +38,7 @@ void Server::destroy_thread_factory() {
38
38
}
39
39
40
40
ThreadFactory::ThreadFactory (Server *server) : BaseFactory(server) {
41
- threads_.resize (server_->task_worker_num + server_-> worker_num + server_-> get_user_worker_num () + 1 );
41
+ threads_.resize (server_->get_all_worker_num () + 1 );
42
42
}
43
43
44
44
bool ThreadFactory::start () {
@@ -77,9 +77,8 @@ void ThreadFactory::at_thread_exit(Worker *worker) {
77
77
78
78
void ThreadFactory::create_message_bus () {
79
79
auto mb = new MessageBus ();
80
- auto server = server_;
81
- mb->set_id_generator ([server]() { return sw_atomic_fetch_add (&server->gs ->pipe_packet_msg_id , 1 ); });
82
- mb->set_buffer_size (server->ipc_max_size );
80
+ mb->set_id_generator (server_->msg_id_generator );
81
+ mb->set_buffer_size (server_->ipc_max_size );
83
82
mb->set_always_chunked_transfer ();
84
83
if (!mb->alloc_buffer ()) {
85
84
throw std::bad_alloc ();
@@ -209,15 +208,12 @@ void ThreadFactory::wait() {
209
208
}
210
209
211
210
int Server::start_worker_threads () {
212
- /* *
213
- * heartbeat thread
214
- */
211
+ ThreadFactory *_factory = dynamic_cast <ThreadFactory *>(factory);
212
+
215
213
if (heartbeat_check_interval > 0 ) {
216
214
start_heartbeat_thread ();
217
215
}
218
216
219
- ThreadFactory *_factory = dynamic_cast <ThreadFactory *>(factory);
220
-
221
217
if (task_worker_num > 0 ) {
222
218
SW_LOOP_N (task_worker_num) {
223
219
_factory->spawn_task_worker (worker_num + i);
@@ -234,12 +230,13 @@ int Server::start_worker_threads() {
234
230
}
235
231
}
236
232
237
- int manager_thread_id = task_worker_num + worker_num + get_user_worker_num ();
233
+ int manager_thread_id = get_all_worker_num ();
238
234
_factory->spawn_manager_thread (manager_thread_id);
239
235
240
236
if (swoole_event_init (0 ) < 0 ) {
241
237
return SW_ERR;
242
238
}
239
+
243
240
Reactor *reactor = sw_reactor ();
244
241
for (auto iter = ports.begin (); iter != ports.end (); iter++) {
245
242
auto port = *iter;
@@ -252,8 +249,10 @@ int Server::start_worker_threads() {
252
249
}
253
250
reactor->add (port->socket , SW_EVENT_READ);
254
251
}
252
+
255
253
SwooleTG.id = reactor->id = manager_thread_id + 1 ;
256
254
store_listen_socket ();
255
+
257
256
return start_master_thread (reactor);
258
257
}
259
258
0 commit comments