projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: exit threads not only on goto restart
[lttng-tools.git]
/
src
/
common
/
consumer.c
diff --git
a/src/common/consumer.c
b/src/common/consumer.c
index 0035aae82d51e1afaa538fddfeb6e7463bfa53db..5495327ab566cb1e1da1a4418623c7864c994efd 100644
(file)
--- a/
src/common/consumer.c
+++ b/
src/common/consumer.c
@@
-2181,18
+2181,13
@@
void *consumer_thread_metadata_poll(void *data)
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:
restart:
-
DBG("Metadata poll wait with %d fd(s)", LTTNG_POLL_GETNB(&events)
);
+
health_code_update(
);
health_poll_entry();
health_poll_entry();
+ DBG("Metadata poll wait");
ret = lttng_poll_wait(&events, -1);
ret = lttng_poll_wait(&events, -1);
+ DBG("Metadata poll return from wait with %d fd(s)",
+ LTTNG_POLL_GETNB(&events));
health_poll_exit();
DBG("Metadata event catched in thread");
if (ret < 0) {
health_poll_exit();
DBG("Metadata event catched in thread");
if (ret < 0) {
@@
-2200,7
+2195,10
@@
restart:
ERR("Poll EINTR catched");
goto restart;
}
ERR("Poll EINTR catched");
goto restart;
}
- goto error;
+ if (LTTNG_POLL_GETNB(&events) == 0) {
+ err = 0; /* All is OK */
+ }
+ goto end;
}
nb_fd = ret;
}
nb_fd = ret;
@@
-2756,18
+2754,13
@@
void *consumer_thread_channel_poll(void *data)
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:
restart:
- DBG("Channel poll wait with %d fd(s)", LTTNG_POLL_GETNB(&events));
+ health_code_update();
+ DBG("Channel poll wait");
health_poll_entry();
ret = lttng_poll_wait(&events, -1);
health_poll_entry();
ret = lttng_poll_wait(&events, -1);
+ DBG("Channel poll return from wait with %d fd(s)",
+ LTTNG_POLL_GETNB(&events));
health_poll_exit();
DBG("Channel event catched in thread");
if (ret < 0) {
health_poll_exit();
DBG("Channel event catched in thread");
if (ret < 0) {
@@
-2775,6
+2768,9
@@
restart:
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;
}
goto end;
}
This page took
0.024464 seconds
and
4
git commands to generate.