int h2_mplx_out_has_data_for(h2_mplx *m, int stream_id) { AP_DEBUG_ASSERT(m); if (m->aborted) { return 0; } int has_data = 0; apr_status_t status = apr_thread_mutex_lock(m->lock); if (APR_SUCCESS == status) { h2_io *io = h2_io_set_get(m->stream_ios, stream_id); if (io) { has_data = h2_io_out_has_data(io); } apr_thread_mutex_unlock(m->lock); } return has_data; }
int h2_mplx_out_has_data_for(h2_mplx *m, int stream_id) { apr_status_t status; int has_data = 0; int acquired; AP_DEBUG_ASSERT(m); if ((status = enter_mutex(m, &acquired)) == APR_SUCCESS) { h2_io *io = h2_io_set_get(m->stream_ios, stream_id); if (io && !io->orphaned) { has_data = h2_io_out_has_data(io); } else { has_data = 0; } leave_mutex(m, acquired); } return has_data; }