Exit threads as soon as number of FD is 0, on every loop (no need for
goto restart special case). Number of FD being 0 is a sufficient
condition for exiting the thread: it means the quit pipe has been
removed from the poll set.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
DBG("Metadata main loop started");
while (1) {
DBG("Metadata main loop started");
while (1) {
- health_code_update();
-
- /* Only the metadata pipe is set */
- if (LTTNG_POLL_GETNB(&events) == 0 && consumer_quit == 1) {
- err = 0; /* All is OK */
- goto end;
- }
-
restart:
health_code_update();
health_poll_entry();
restart:
health_code_update();
health_poll_entry();
ERR("Poll EINTR catched");
goto restart;
}
ERR("Poll EINTR catched");
goto restart;
}
+ if (LTTNG_POLL_GETNB(&events) == 0) {
+ err = 0; /* All is OK */
+ }
+ goto end;
DBG("Channel main loop started");
while (1) {
DBG("Channel main loop started");
while (1) {
- health_code_update();
-
- /* Only the channel pipe is set */
- if (LTTNG_POLL_GETNB(&events) == 0 && consumer_quit == 1) {
- err = 0; /* All is OK */
- goto end;
- }
-
restart:
health_code_update();
DBG("Channel poll wait");
restart:
health_code_update();
DBG("Channel poll wait");
ERR("Poll EINTR catched");
goto restart;
}
ERR("Poll EINTR catched");
goto restart;
}
+ if (LTTNG_POLL_GETNB(&events) == 0) {
+ err = 0; /* All is OK */
+ }