Revision ee399306 posix-aio-compat.c
b/posix-aio-compat.c | ||
---|---|---|
301 | 301 |
static void *aio_thread(void *unused) |
302 | 302 |
{ |
303 | 303 |
pid_t pid; |
304 |
sigset_t set; |
|
305 | 304 |
|
306 | 305 |
pid = getpid(); |
307 | 306 |
|
308 |
/* block all signals */ |
|
309 |
if (sigfillset(&set)) die("sigfillset"); |
|
310 |
if (sigprocmask(SIG_BLOCK, &set, NULL)) die("sigprocmask"); |
|
311 |
|
|
312 | 307 |
while (1) { |
313 | 308 |
struct qemu_paiocb *aiocb; |
314 | 309 |
size_t ret = 0; |
... | ... | |
369 | 364 |
|
370 | 365 |
static void spawn_thread(void) |
371 | 366 |
{ |
367 |
sigset_t set, oldset; |
|
368 |
|
|
372 | 369 |
cur_threads++; |
373 | 370 |
idle_threads++; |
371 |
|
|
372 |
/* block all signals */ |
|
373 |
if (sigfillset(&set)) die("sigfillset"); |
|
374 |
if (sigprocmask(SIG_SETMASK, &set, &oldset)) die("sigprocmask"); |
|
375 |
|
|
374 | 376 |
thread_create(&thread_id, &attr, aio_thread, NULL); |
377 |
|
|
378 |
if (sigprocmask(SIG_SETMASK, &oldset, NULL)) die("sigprocmask restore"); |
|
375 | 379 |
} |
376 | 380 |
|
377 | 381 |
static void qemu_paio_submit(struct qemu_paiocb *aiocb) |
Also available in: Unified diff