aboutsummaryrefslogtreecommitdiff
path: root/distrib
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2015-06-26 14:45:33 +0200
committerDavid 'Digit' Turner <digit@google.com>2015-06-30 12:49:48 +0200
commitc961f3a6a06102ff69f5243dae8c0e74439f0236 (patch)
treee64f88d47eaf2cc7d445b2e191edc178798bf3c3 /distrib
parent88e6a592dbd10fa207bea1c11472766b89801499 (diff)
downloadqemu-c961f3a6a06102ff69f5243dae8c0e74439f0236.tar.gz
emugl: Disable signals from render and window threads.
Change-Id: Ifb4ae36fc4b112050726dcdab097635c61396acc
Diffstat (limited to 'distrib')
-rw-r--r--distrib/android-emugl/host/libs/libOpenglRender/RenderServer.cpp8
-rw-r--r--distrib/android-emugl/host/libs/libOpenglRender/RenderWindow.cpp9
2 files changed, 17 insertions, 0 deletions
diff --git a/distrib/android-emugl/host/libs/libOpenglRender/RenderServer.cpp b/distrib/android-emugl/host/libs/libOpenglRender/RenderServer.cpp
index d492709fd0..7c91271b8f 100644
--- a/distrib/android-emugl/host/libs/libOpenglRender/RenderServer.cpp
+++ b/distrib/android-emugl/host/libs/libOpenglRender/RenderServer.cpp
@@ -20,6 +20,8 @@
#include "TcpStream.h"
#ifndef _WIN32
#include "UnixStream.h"
+#include <signal.h>
+#include <pthread.h>
#endif
#ifdef _WIN32
#include "Win32PipeStream.h"
@@ -86,6 +88,12 @@ intptr_t RenderServer::main()
{
RenderThreadsSet threads;
+#ifndef _WIN32
+ sigset_t set;
+ sigfillset(&set);
+ pthread_sigmask(SIG_SETMASK, &set, NULL);
+#endif
+
while(1) {
SocketStream *stream = m_listenSock->accept();
if (!stream) {
diff --git a/distrib/android-emugl/host/libs/libOpenglRender/RenderWindow.cpp b/distrib/android-emugl/host/libs/libOpenglRender/RenderWindow.cpp
index fe42871790..1063230f0d 100644
--- a/distrib/android-emugl/host/libs/libOpenglRender/RenderWindow.cpp
+++ b/distrib/android-emugl/host/libs/libOpenglRender/RenderWindow.cpp
@@ -21,6 +21,10 @@
#include <stdarg.h>
#include <stdio.h>
+#ifndef _WIN32
+#include <signal.h>
+#include <pthread.h>
+#endif
#define DEBUG 0
@@ -245,6 +249,11 @@ public:
virtual intptr_t main() {
D("Entering render window thread thread\n");
+#ifndef _WIN32
+ sigset_t set;
+ sigfillset(&set);
+ pthread_sigmask(SIG_SETMASK, &set, NULL);
+#endif
bool running = true;
while (running) {
RenderWindowMessage msg;