Revision 9f939df9 qemu-char.c
b/qemu-char.c | ||
---|---|---|
122 | 122 |
s->chr_event(s->handler_opaque, event); |
123 | 123 |
} |
124 | 124 |
|
125 |
static void qemu_chr_fire_open_event(void *opaque)
|
|
125 |
static gboolean qemu_chr_generic_open_bh(gpointer opaque)
|
|
126 | 126 |
{ |
127 | 127 |
CharDriverState *s = opaque; |
128 | 128 |
qemu_chr_be_event(s, CHR_EVENT_OPENED); |
129 |
qemu_free_timer(s->open_timer);
|
|
130 |
s->open_timer = NULL;
|
|
129 |
s->idle_tag = 0;
|
|
130 |
return FALSE;
|
|
131 | 131 |
} |
132 | 132 |
|
133 | 133 |
void qemu_chr_generic_open(CharDriverState *s) |
134 | 134 |
{ |
135 |
if (s->open_timer == NULL) { |
|
136 |
s->open_timer = qemu_new_timer_ms(rt_clock, |
|
137 |
qemu_chr_fire_open_event, s); |
|
138 |
qemu_mod_timer(s->open_timer, qemu_get_clock_ms(rt_clock) - 1); |
|
135 |
if (s->idle_tag == 0) { |
|
136 |
s->idle_tag = g_idle_add(qemu_chr_generic_open_bh, s); |
|
139 | 137 |
} |
140 | 138 |
} |
141 | 139 |
|
Also available in: Unified diff