From f08bb871203e921da1b0cdce6f9ff88d32a2fb4e Mon Sep 17 00:00:00 2001 From: David Goulet Date: Wed, 26 Feb 2014 16:06:31 -0500 Subject: [PATCH] Fix: handle registration done command This makes the getLTTngAgent() call wait until we receive that message so that in the meantime the session daemon can enable events. Fixes #692 Signed-off-by: David Goulet Signed-off-by: Mathieu Desnoyers --- .../org/lttng/ust/jul/LTTngSessiondCmd2_4.java | 5 ++++- .../org/lttng/ust/jul/LTTngTCPSessiondClient.java | 10 +++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java b/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java index 7f5f61d1..4cb5a731 100644 --- a/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java +++ b/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java @@ -64,7 +64,10 @@ public interface LTTngSessiondCmd2_4 { /** Enable logger by name. */ CMD_ENABLE(2), /** Disable logger by name. */ - CMD_DISABLE(3); + CMD_DISABLE(3), + /** Registration done */ + CMD_REG_DONE(4); + private int code; private lttng_jul_command(int c) { diff --git a/liblttng-ust-jul/org/lttng/ust/jul/LTTngTCPSessiondClient.java b/liblttng-ust-jul/org/lttng/ust/jul/LTTngTCPSessiondClient.java index 35f768f3..aab1d054 100644 --- a/liblttng-ust-jul/org/lttng/ust/jul/LTTngTCPSessiondClient.java +++ b/liblttng-ust-jul/org/lttng/ust/jul/LTTngTCPSessiondClient.java @@ -188,7 +188,6 @@ public class LTTngTCPSessiondClient { * UST application. */ registerToSessiond(); - this.registerSem.release(); setupEventTimer(); @@ -274,6 +273,15 @@ public class LTTngTCPSessiondClient { } switch (headerCmd.cmd) { + case CMD_REG_DONE: + { + /* + * Release semaphore so meaning registration is done and we + * can proceed to continue tracing. + */ + this.registerSem.release(); + break; + } case CMD_LIST: { LTTngSessiondCmd2_4.sessiond_list_logger listLoggerCmd = -- 2.34.1