<p>Pau Espin Pedrol has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13281">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Integrate sleeping/printing loop into osmo main loop<br><br>Among other possibles issue, it should avoid sporadic print loop hanging if no events are fired in osmocom main loop.<br><br>Change-Id: Ie2f0983eaf75826483b5b70f58b4d4acb842d6ea<br>---<br>M src/osysmon_main.c<br>1 file changed, 27 insertions(+), 19 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/81/13281/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osysmon_main.c b/src/osysmon_main.c</span><br><span>index c2df6ad..1ba3753 100644</span><br><span>--- a/src/osysmon_main.c</span><br><span>+++ b/src/osysmon_main.c</span><br><span>@@ -35,6 +35,7 @@</span><br><span> #include <osmocom/core/msgb.h></span><br><span> #include <osmocom/core/logging.h></span><br><span> #include <osmocom/core/application.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/timer.h></span><br><span> </span><br><span> static struct log_info log_info = {};</span><br><span> </span><br><span>@@ -191,9 +192,31 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static struct osmo_timer_list print_timer;</span><br><span style="color: hsl(120, 100%, 40%);">+int ping_init;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void print_nodes(__attribute__((unused)) void *data)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      struct value_node *root = value_node_add(NULL, "root", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+       osysmon_openvpn_poll(root);</span><br><span style="color: hsl(120, 100%, 40%);">+   osysmon_sysinfo_poll(root);</span><br><span style="color: hsl(120, 100%, 40%);">+   osysmon_ctrl_poll(root);</span><br><span style="color: hsl(120, 100%, 40%);">+      osysmon_rtnl_poll(root);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    if (ping_init == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+           osysmon_ping_poll(root);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    osysmon_file_poll(root);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    display_update(root);</span><br><span style="color: hsl(120, 100%, 40%);">+ value_node_del(root);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       osmo_timer_schedule(&print_timer, 1, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> int main(int argc, char **argv)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       int rc, ping_init;</span><br><span style="color: hsl(120, 100%, 40%);">+    int rc;</span><br><span> </span><br><span>  osmo_init_logging2(NULL, &log_info);</span><br><span> </span><br><span>@@ -231,26 +254,11 @@</span><br><span>                 }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   while (1) {</span><br><span style="color: hsl(0, 100%, 40%);">-             struct value_node *root = value_node_add(NULL, "root", NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-         int vpns = osysmon_openvpn_poll(root);</span><br><span style="color: hsl(0, 100%, 40%);">-          osysmon_sysinfo_poll(root);</span><br><span style="color: hsl(0, 100%, 40%);">-             osysmon_ctrl_poll(root);</span><br><span style="color: hsl(0, 100%, 40%);">-                osysmon_rtnl_poll(root);</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_timer_setup(&print_timer, print_nodes, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+        osmo_timer_schedule(&print_timer, 0, 0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-                if (ping_init == 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                     osysmon_ping_poll(root);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                osysmon_file_poll(root);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                display_update(root);</span><br><span style="color: hsl(0, 100%, 40%);">-           value_node_del(root);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-           if (vpns)</span><br><span style="color: hsl(120, 100%, 40%);">+     while (1)</span><br><span>                    osmo_select_main(0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-                sleep(1);</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>    exit(0);</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13281">change 13281</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13281"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-sysmon </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ie2f0983eaf75826483b5b70f58b4d4acb842d6ea </div>
<div style="display:none"> Gerrit-Change-Number: 13281 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>