We can't do that there, we have to make sure it stays a valid fd until
the application calls wl_display_disconnect(). Otherwise the application
may end up poll()ing on a stale or wrong fd in case another part of the
application (or another thread) triggered a fatal error.
error = 1;
display->last_error = error;
- close(display->fd);
- display->fd = -1;
wl_list_for_each(iter, &display->event_queue_list, link)
pthread_cond_broadcast(&iter->cond);
wl_event_queue_release(&display->queue);
pthread_mutex_destroy(&display->mutex);
pthread_cond_destroy(&display->reader_cond);
- if (display->fd > 0)
- close(display->fd);
+ close(display->fd);
free(display);
}