@@ -193,25 +193,41 @@ int main(int argc, char *argv[])
193
193
zmq_single_thread_poller.detach ();
194
194
// --- ZMQ - Poller ---
195
195
196
- std::vector<std::thread> workers;
196
+ std::vector<std::thread> cisco_workers;
197
+ std::vector<std::thread> juniper_workers;
198
+ std::vector<std::thread> huawei_workers;
197
199
198
200
// Cisco
199
- LoadThreads (workers , " ipv4_socket_cisco" , " replies_cisco" ,
201
+ LoadThreads (cisco_workers , " ipv4_socket_cisco" , " replies_cisco" ,
200
202
" cisco_workers" );
201
203
202
204
// Juniper
203
- LoadThreads (workers , " ipv4_socket_juniper" , " replies_juniper" ,
205
+ LoadThreads (juniper_workers , " ipv4_socket_juniper" , " replies_juniper" ,
204
206
" juniper_workers" );
205
207
206
208
// Huawei
207
- LoadThreads (workers , " ipv4_socket_huawei" , " replies_huawei" ,
209
+ LoadThreads (huawei_workers , " ipv4_socket_huawei" , " replies_huawei" ,
208
210
" huawei_workers" );
209
211
210
212
signal (SIGUSR1, SignalHandler);
211
213
212
- // std::cout << "WORKERS: " << workers.size() << "\n";
214
+ // std::cout << "CISCO_WORKERS: " << cisco_workers.size() << "\n";
215
+ // std::cout << "JUNIPER_WORKERS: " << juniper_workers.size() << "\n";
216
+ // std::cout << "HUAWEI_WORKERS: " << huawei_workers.size() << "\n";
213
217
214
- for (std::thread &w : workers) {
218
+ for (std::thread &w : cisco_workers) {
219
+ if (w.joinable ()) {
220
+ w.join ();
221
+ }
222
+ }
223
+
224
+ for (std::thread &w : juniper_workers) {
225
+ if (w.joinable ()) {
226
+ w.join ();
227
+ }
228
+ }
229
+
230
+ for (std::thread &w : huawei_workers) {
215
231
if (w.joinable ()) {
216
232
w.join ();
217
233
}
@@ -270,7 +286,7 @@ void LoadThreads(std::vector<std::thread> &workers_vec,
270
286
const std::string &workers_str)
271
287
{
272
288
if (main_cfg_parameters.at (ipv4_socket_str).empty () == false ) {
273
- size_t replies =
289
+ int replies =
274
290
std::stoi (main_cfg_parameters.at (replies_str));
275
291
if (replies < 0 || replies > 1000 ) {
276
292
spdlog::get (" multi-logger" )->
@@ -279,15 +295,15 @@ void LoadThreads(std::vector<std::thread> &workers_vec,
279
295
" and 1000. (default = 0 => unlimited)" , replies_str);
280
296
std::exit (EXIT_FAILURE);
281
297
}
282
- size_t workers = std::stoi (main_cfg_parameters.at (workers_str));
298
+ int workers = std::stoi (main_cfg_parameters.at (workers_str));
283
299
if (workers < 1 || workers > 5 ) {
284
300
spdlog::get (" multi-logger" )->
285
301
error (" [{}] configuration issue: the "
286
302
" allowed amount of workers is defined between 1 "
287
303
" and 5. (default = 1)" , workers_str);
288
304
std::exit (EXIT_FAILURE);
289
305
}
290
- for (size_t w = 0 ; w < workers; w++) {
306
+ for (int w = 0 ; w < workers; w++) {
291
307
workers_vec.push_back (std::thread (&VendorThread,
292
308
ipv4_socket_str));
293
309
}
0 commit comments