wayland-tbm create wl_buffer with fd but it is sometimes failed because
fd duplication is failed with EBADF error.
we guess another thread close fd of wayland-tbm.
wayland-tbm retry to create wl_buffer with key when it is failed with fd
but process is aborted in wayland-client.
so this patch allows wayland-tbm create wl_buffer proxy with key
when fd duplication is failed in wayland-client.
Change-Id: Id56e0ff87784678a5a192a0bc6f0aabae39da5df
break;
case 'h':
fd = args[i].h;
+ // TIZEN_ONLY(20210310) : wayland-client : do not abort when there is an EBADF error on marshalling request
+ errno = 0;
+ // TIZEN_ONLY : END
dup_fd = wl_os_dupfd_cloexec(fd, 0);
if (dup_fd < 0) {
wl_closure_destroy(closure);
closure = wl_closure_marshal(&proxy->object, opcode, args, message);
if (closure == NULL) {
+ // TIZEN_ONLY(20210310) : wayland-client : do not abort when there is an EBADF error on marshalling request
+ if (errno == EBADF) {
+ wl_log("fail wl_closure_marshal with EBADF");
+ new_proxy->flags |= WL_PROXY_FLAG_ID_DELETED;
+ proxy_destroy(new_proxy);
+ new_proxy = NULL;
+ goto err_unlock;
+ }
+ // TIZEN_ONLY : END
+
// TIZEN_ONLY(20200306) : wayland-client : do abort when there is an error on marshalling request
wl_abort("Error marshalling request: %m\n");
// TIZEN_ONLY : END
return display->name;
}
-// END
\ No newline at end of file
+// END