ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ /* Emit the "waiting" signal to let listeners know we are ready for input */
+ g_signal_emit_by_name(glk_data->self, "waiting");
+
g_mutex_lock(glk_data->event_lock);
/* Wait for an event */
- while( g_queue_is_empty(glk_data->event_queue) )
+ if( g_queue_is_empty(glk_data->event_queue) )
g_cond_wait(glk_data->event_queue_not_empty, glk_data->event_lock);
event_t *retrieved_event = g_queue_pop_tail(glk_data->event_queue);
/* If an abort event was generated, the thread should have exited by now */
g_assert(event->type != evtype_Abort);
-}
\ No newline at end of file
+}