diff options
Diffstat (limited to 'sample/signal-test.c')
-rw-r--r-- | sample/signal-test.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/sample/signal-test.c b/sample/signal-test.c index 18668350b868..4aef42051574 100644 --- a/sample/signal-test.c +++ b/sample/signal-test.c @@ -44,8 +44,9 @@ signal_cb(evutil_socket_t fd, short event, void *arg) int main(int argc, char **argv) { - struct event *signal_int; + struct event *signal_int = NULL; struct event_base* base; + int ret = 0; #ifdef _WIN32 WORD wVersionRequested; WSADATA wsaData; @@ -55,18 +56,28 @@ main(int argc, char **argv) (void) WSAStartup(wVersionRequested, &wsaData); #endif - /* Initalize the event library */ + /* Initialize the event library */ base = event_base_new(); + if (!base) { + ret = 1; + goto out; + } - /* Initalize one event */ + /* Initialize one event */ signal_int = evsignal_new(base, SIGINT, signal_cb, event_self_cbarg()); - + if (!signal_int) { + ret = 2; + goto out; + } event_add(signal_int, NULL); event_base_dispatch(base); - event_free(signal_int); - event_base_free(base); - return (0); +out: + if (signal_int) + event_free(signal_int); + if (base) + event_base_free(base); + return ret; } |