Revision 72cf2d4f posix-aio-compat.c
b/posix-aio-compat.c | ||
---|---|---|
22 | 22 |
#include <stdlib.h> |
23 | 23 |
#include <stdio.h> |
24 | 24 |
|
25 |
#include "sys-queue.h"
|
|
25 |
#include "qemu-queue.h"
|
|
26 | 26 |
#include "osdep.h" |
27 | 27 |
#include "qemu-common.h" |
28 | 28 |
#include "block_int.h" |
... | ... | |
43 | 43 |
int ev_signo; |
44 | 44 |
off_t aio_offset; |
45 | 45 |
|
46 |
TAILQ_ENTRY(qemu_paiocb) node; |
|
46 |
QTAILQ_ENTRY(qemu_paiocb) node;
|
|
47 | 47 |
int aio_type; |
48 | 48 |
ssize_t ret; |
49 | 49 |
int active; |
... | ... | |
63 | 63 |
static int max_threads = 64; |
64 | 64 |
static int cur_threads = 0; |
65 | 65 |
static int idle_threads = 0; |
66 |
static TAILQ_HEAD(, qemu_paiocb) request_list; |
|
66 |
static QTAILQ_HEAD(, qemu_paiocb) request_list;
|
|
67 | 67 |
|
68 | 68 |
#ifdef CONFIG_PREADV |
69 | 69 |
static int preadv_present = 1; |
... | ... | |
321 | 321 |
|
322 | 322 |
mutex_lock(&lock); |
323 | 323 |
|
324 |
while (TAILQ_EMPTY(&request_list) && |
|
324 |
while (QTAILQ_EMPTY(&request_list) &&
|
|
325 | 325 |
!(ret == ETIMEDOUT)) { |
326 | 326 |
ret = cond_timedwait(&cond, &lock, &ts); |
327 | 327 |
} |
328 | 328 |
|
329 |
if (TAILQ_EMPTY(&request_list)) |
|
329 |
if (QTAILQ_EMPTY(&request_list))
|
|
330 | 330 |
break; |
331 | 331 |
|
332 |
aiocb = TAILQ_FIRST(&request_list); |
|
333 |
TAILQ_REMOVE(&request_list, aiocb, node); |
|
332 |
aiocb = QTAILQ_FIRST(&request_list);
|
|
333 |
QTAILQ_REMOVE(&request_list, aiocb, node);
|
|
334 | 334 |
aiocb->active = 1; |
335 | 335 |
idle_threads--; |
336 | 336 |
mutex_unlock(&lock); |
... | ... | |
381 | 381 |
mutex_lock(&lock); |
382 | 382 |
if (idle_threads == 0 && cur_threads < max_threads) |
383 | 383 |
spawn_thread(); |
384 |
TAILQ_INSERT_TAIL(&request_list, aiocb, node); |
|
384 |
QTAILQ_INSERT_TAIL(&request_list, aiocb, node);
|
|
385 | 385 |
mutex_unlock(&lock); |
386 | 386 |
cond_signal(&cond); |
387 | 387 |
} |
... | ... | |
509 | 509 |
|
510 | 510 |
mutex_lock(&lock); |
511 | 511 |
if (!acb->active) { |
512 |
TAILQ_REMOVE(&request_list, acb, node); |
|
512 |
QTAILQ_REMOVE(&request_list, acb, node);
|
|
513 | 513 |
acb->ret = -ECANCELED; |
514 | 514 |
} else if (acb->ret == -EINPROGRESS) { |
515 | 515 |
active = 1; |
... | ... | |
619 | 619 |
if (ret) |
620 | 620 |
die2(ret, "pthread_attr_setdetachstate"); |
621 | 621 |
|
622 |
TAILQ_INIT(&request_list); |
|
622 |
QTAILQ_INIT(&request_list);
|
|
623 | 623 |
|
624 | 624 |
posix_aio_state = s; |
625 | 625 |
|
Also available in: Unified diff