When _X_t_S_e_n_d_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t is called with a value of _r_e_q_u_e_s_t_o_r and _s_e_l_e_c_t_i_o_n matching a previous call to _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t, a selection conversion request is actually sent to the selection owner. If a single target request is queued, that request is made. If multiple targets are queued they are bundled into a single request with the target MULTIPLE using the specified timestamp. As the conversions are made, the callbacks associated with each _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e and _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_I_n_c_r_e_m_e_n_t_a_l are invoked in turn.
Multi-threaded applications should lock the application context before calling _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t and release the lock after calling _X_t_S_e_n_d_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t to ensure that the thread assembling the request is safe from interference by another thread assembling a different request naming the same widget and selection.
When _X_t_C_a_n_c_e_l_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t is called, any requests queued since the last call to _X_t_C_r_e_a_t_e_S_e_l_e_c_t_i_o_n_R_e_q_u_e_s_t are cleaned up. Subsequent calls to _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e, _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_s, _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_I_n_c_r_e_m_e_n_t_a_l, and _X_t_G_e_t_S_e_l_e_c_t_i_o_n_V_a_l_u_e_s_I_n_c_r_e_m_e_n_t_a_l will not be deferred.