···431431 * @{
432432 */
433433/*!
434434- * Start a thread for a client connected at the other end of the ipc handle @p ipc_handle.
434434+ * Called when a client has connected, it takes the client's ipc handle.
435435+ * Handles all things needed to be done for a client connecting, like starting
436436+ * it's thread.
437437+ *
438438+ * @param vs The IPC server.
439439+ * @param ipc_handle Handle to communicate over.
435440 * @memberof ipc_server
436441 */
437442void
438438-ipc_server_start_client_listener_thread(struct ipc_server *vs, xrt_ipc_handle_t ipc_handle);
443443+ipc_server_handle_client_connected(struct ipc_server *vs, xrt_ipc_handle_t ipc_handle);
439444440445/*!
441446 * Perform whatever needs to be done when the mainloop polling encounters a failure.
+6-1
src/xrt/ipc/server/ipc_server_mainloop_android.c
···9191 if (read(ml->pipe_read, &newfd, sizeof(newfd)) == sizeof(newfd)) {
9292 // client_push_mutex should prevent dropping acknowledgements
9393 assert(ml->last_accepted_fd == 0);
9494+9495 // Release the thread that gave us this fd.
9596 ml->last_accepted_fd = newfd;
9696- ipc_server_start_client_listener_thread(vs, newfd);
9797+9898+ // Call into the generic client connected handling code.
9999+ ipc_server_handle_client_connected(vs, newfd);
100100+101101+ // If we are waiting to shutdown, wake that thread up.
97102 pthread_cond_broadcast(&ml->accept_cond);
98103 } else {
99104 U_LOG_E("error on pipe read");