qxl: Convert to QEMU thread API
Use QEMU thread API instead of pthread directly. We still need to get rid of pthread_yield, though, to drop pthread.h inclusion. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
f9ab6091b0
commit
691f5c7bde
4
hw/qxl.c
4
hw/qxl.c
|
@ -1372,7 +1372,7 @@ static void qxl_send_events(PCIQXLDevice *d, uint32_t events)
|
||||||
if ((old_pending & le_events) == le_events) {
|
if ((old_pending & le_events) == le_events) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (pthread_self() == d->main) {
|
if (qemu_thread_is_self(&d->main)) {
|
||||||
qxl_update_irq(d);
|
qxl_update_irq(d);
|
||||||
} else {
|
} else {
|
||||||
if (write(d->pipe[1], d, 1) != 1) {
|
if (write(d->pipe[1], d, 1) != 1) {
|
||||||
|
@ -1391,7 +1391,7 @@ static void init_pipe_signaling(PCIQXLDevice *d)
|
||||||
fcntl(d->pipe[1], F_SETFL, O_NONBLOCK);
|
fcntl(d->pipe[1], F_SETFL, O_NONBLOCK);
|
||||||
fcntl(d->pipe[0], F_SETOWN, getpid());
|
fcntl(d->pipe[0], F_SETOWN, getpid());
|
||||||
|
|
||||||
d->main = pthread_self();
|
qemu_thread_get_self(&d->main);
|
||||||
qemu_set_fd_handler(d->pipe[0], pipe_read, NULL, d);
|
qemu_set_fd_handler(d->pipe[0], pipe_read, NULL, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
3
hw/qxl.h
3
hw/qxl.h
|
@ -4,6 +4,7 @@
|
||||||
#include "hw.h"
|
#include "hw.h"
|
||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
#include "vga_int.h"
|
#include "vga_int.h"
|
||||||
|
#include "qemu-thread.h"
|
||||||
|
|
||||||
#include "ui/qemu-spice.h"
|
#include "ui/qemu-spice.h"
|
||||||
#include "ui/spice-display.h"
|
#include "ui/spice-display.h"
|
||||||
|
@ -63,7 +64,7 @@ typedef struct PCIQXLDevice {
|
||||||
QemuMutex track_lock;
|
QemuMutex track_lock;
|
||||||
|
|
||||||
/* thread signaling */
|
/* thread signaling */
|
||||||
pthread_t main;
|
QemuThread main;
|
||||||
int pipe[2];
|
int pipe[2];
|
||||||
|
|
||||||
/* ram pci bar */
|
/* ram pci bar */
|
||||||
|
|
Reference in New Issue