提交 e784ba70 编写于 作者: T ths

Ensure signals are properly masked for new SDL Audio threads, by Andrzej

Zaborowski.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3069 c046a42c-6fe2-441c-8c8c-71466251a162
上级 af3a9031
......@@ -25,6 +25,13 @@
#include <SDL_thread.h>
#include "vl.h"
#ifndef _WIN32
#ifdef __sun__
#define _POSIX_PTHREAD_SEMANTICS 1
#endif
#include <signal.h>
#endif
#define AUDIO_CAP "sdl"
#include "audio_int.h"
......@@ -177,11 +184,22 @@ static int sdl_to_audfmt (int sdlfmt, audfmt_e *fmt, int *endianess)
static int sdl_open (SDL_AudioSpec *req, SDL_AudioSpec *obt)
{
int status;
#ifndef _WIN32
sigset_t new, old;
/* Make sure potential threads created by SDL don't hog signals. */
sigfillset (&new);
pthread_sigmask (SIG_BLOCK, &new, &old);
#endif
status = SDL_OpenAudio (req, obt);
if (status) {
sdl_logerr ("SDL_OpenAudio failed\n");
}
#ifndef _WIN32
pthread_sigmask (SIG_SETMASK, &old, 0);
#endif
return status;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册