Skip to content

Commit b991cc1

Browse files
tempateLuciaEchevarria99
authored andcommitted
Always clear log consumers before exiting
Signed-off-by: tempate <[email protected]>
1 parent 34284fd commit b991cc1

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

tools/ddsrouter_tool/src/cpp/main.cpp

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
using namespace eprosima;
4747
using namespace eprosima::ddsrouter;
4848

49+
int exit(const ui::ProcessReturnCode& code);
50+
4951
int main(
5052
int argc,
5153
char** argv)
@@ -59,15 +61,15 @@ int main(
5961

6062
if (arg_parse_result == ui::ProcessReturnCode::help_argument)
6163
{
62-
return static_cast<int>(ui::ProcessReturnCode::success);
64+
return exit(ui::ProcessReturnCode::success);
6365
}
6466
else if (arg_parse_result == ui::ProcessReturnCode::version_argument)
6567
{
66-
return static_cast<int>(ui::ProcessReturnCode::success);
68+
return exit(ui::ProcessReturnCode::success);
6769
}
6870
else if (arg_parse_result != ui::ProcessReturnCode::success)
6971
{
70-
return static_cast<int>(arg_parse_result);
72+
return exit(arg_parse_result);
7173
}
7274

7375
// Check file is in args, else get the default file
@@ -87,7 +89,8 @@ int main(
8789
EPROSIMA_LOG_ERROR(
8890
DDSROUTER_ARGS,
8991
"File '" << commandline_args.file_path << "' does not exist or it is not accessible.");
90-
return static_cast<int>(ui::ProcessReturnCode::required_argument_failed);
92+
93+
return exit(ui::ProcessReturnCode::required_argument_failed);
9194
}
9295

9396
logUser(DDSROUTER_EXECUTION, "Starting DDS Router Tool execution.");
@@ -274,23 +277,27 @@ int main(
274277
"Error Loading DDS Router Configuration from file " << commandline_args.file_path <<
275278
". Error message:\n " <<
276279
e.what());
277-
return static_cast<int>(ui::ProcessReturnCode::execution_failed);
280+
281+
return exit(ui::ProcessReturnCode::execution_failed);
278282
}
279283
catch (const eprosima::utils::InitializationException& e)
280284
{
281285
EPROSIMA_LOG_ERROR(DDSROUTER_ERROR,
282286
"Error Initializing DDS Router. Error message:\n " <<
283287
e.what());
284-
return static_cast<int>(ui::ProcessReturnCode::execution_failed);
288+
289+
return exit(ui::ProcessReturnCode::execution_failed);
285290
}
286291

287292
logUser(DDSROUTER_EXECUTION, "Finishing DDS Router Tool execution correctly.");
288293

289-
// Force print every log before closing
290-
eprosima::utils::Log::Flush();
294+
return exit(ui::ProcessReturnCode::success);
295+
}
291296

297+
int exit(const ui::ProcessReturnCode& code)
298+
{
292299
// Delete the consumers before closing
293300
eprosima::utils::Log::ClearConsumers();
294301

295-
return static_cast<int>(ui::ProcessReturnCode::success);
302+
return static_cast<int>(code);
296303
}

0 commit comments

Comments
 (0)