jolly has uploaded this change for review.

View Change

stream_{client,server} example: Cleanup on exit

In order to detect memory leaks while debugging, stream server/client
and keyboard is closed on exit.

Related: OS#5753
Change-Id: I9dbb7f46b2a798e88ad4df8ff73c6ee40c07b843
---
M examples/stream-client.c
M examples/stream-server.c
2 files changed, 36 insertions(+), 3 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/24/36124/1
diff --git a/examples/stream-client.c b/examples/stream-client.c
index 97aaa1c..d57dc12 100644
--- a/examples/stream-client.c
+++ b/examples/stream-client.c
@@ -32,9 +32,12 @@

static struct osmo_stream_cli *conn;

+static bool quit = false;
+
void sighandler(int foo)
{
LOGP(DSTREAMTEST, LOGL_NOTICE, "closing stream.\n");
+ quit = true;
exit(EXIT_SUCCESS);
}

@@ -162,9 +165,17 @@
exit(EXIT_FAILURE);
}

+ signal(SIGINT, sighandler);
+
LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop\n");

- while(1) {
+ while(!quit) {
osmo_select_main(0);
}
+
+ signal(SIGINT, SIG_DFL);
+
+ osmo_fd_unregister(kbd_ofd);
+
+ osmo_stream_cli_destroy(conn);
}
diff --git a/examples/stream-server.c b/examples/stream-server.c
index d0647b7..49d52a7 100644
--- a/examples/stream-server.c
+++ b/examples/stream-server.c
@@ -35,11 +35,12 @@
static struct osmo_stream_srv_link *srv;
static struct osmo_stream_srv *conn;

+bool quit = false;

void sighandler(int foo)
{
LOGP(DSTREAMTEST, LOGL_NOTICE, "closing STREAMSERVER.\n");
- exit(EXIT_SUCCESS);
+ quit = true;
}

int read_cb(struct osmo_stream_srv *conn, struct msgb *msg)
@@ -181,9 +182,17 @@
osmo_fd_setup(kbd_ofd, STDIN_FILENO, OSMO_FD_READ, kbd_cb, srv, 0);
osmo_fd_register(kbd_ofd);

+ signal(SIGINT, sighandler);
+
LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop on %s\n", osmo_stream_srv_link_get_sockname(srv));

- while(1) {
+ while(!quit) {
osmo_select_main(0);
}
+
+ signal(SIGINT, SIG_DFL);
+
+ osmo_fd_unregister(kbd_ofd);
+
+ osmo_stream_srv_link_destroy(srv);
}

To view, visit change 36124. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I9dbb7f46b2a798e88ad4df8ff73c6ee40c07b843
Gerrit-Change-Number: 36124
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas@eversberg.eu>
Gerrit-MessageType: newchange