[Spice-devel] [PATCH spice-streaming-agent 8/9] Clean up the global try-catch block
Lukáš Hrázký
lhrazky at redhat.com
Wed Jun 13 12:06:27 UTC 2018
Unify the error handling to use exceptions, narrowing down the exit
spots for success/error to one each.
Signed-off-by: Lukáš Hrázký <lhrazky at redhat.com>
---
src/spice-streaming-agent.cpp | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/src/spice-streaming-agent.cpp b/src/spice-streaming-agent.cpp
index fe26f70..94419b0 100644
--- a/src/spice-streaming-agent.cpp
+++ b/src/spice-streaming-agent.cpp
@@ -474,14 +474,14 @@ int main(int argc, char* argv[])
}
}
+ register_interrupts();
+
try {
// register built-in plugins
MjpegPlugin::Register(&agent);
agent.LoadPlugins(pluginsdir);
- register_interrupts();
-
FrameLog frame_log(log_filename, log_binary, log_frames);
for (const std::string& arg: old_args) {
@@ -491,19 +491,16 @@ int main(int argc, char* argv[])
Display *display = XOpenDisplay(NULL);
if (display == NULL) {
- syslog(LOG_ERR, "failed to open display\n");
- return EXIT_FAILURE;
+ throw Error("Failed to open X display");
}
+
int event_base, error_base;
if (!XFixesQueryExtension(display, &event_base, &error_base)) {
- syslog(LOG_ERR, "XFixesQueryExtension failed\n");
- return EXIT_FAILURE;
+ throw Error("XFixesQueryExtension failed");
}
Window rootwindow = DefaultRootWindow(display);
XFixesSelectCursorInput(display, rootwindow, XFixesDisplayCursorNotifyMask);
- int ret = EXIT_SUCCESS;
-
StreamPort stream_port(stream_port_name);
std::thread cursor_th(cursor_changes, &stream_port, display, event_base);
@@ -513,8 +510,8 @@ int main(int argc, char* argv[])
}
catch (std::exception &err) {
syslog(LOG_ERR, "%s\n", err.what());
- ret = EXIT_FAILURE;
+ return EXIT_FAILURE;
}
- return ret;
+ return EXIT_SUCCESS;
}
--
2.17.1
More information about the Spice-devel
mailing list