| 614 | } |
| 615 | |
| 616 | apr_status_t h2_workers_activate(h2_workers *workers, ap_conn_producer_t *prod) |
| 617 | { |
| 618 | apr_status_t rv = APR_SUCCESS; |
| 619 | apr_thread_mutex_lock(workers->lock); |
| 620 | if (PROD_IDLE == prod->state) { |
| 621 | APR_RING_REMOVE(prod, link); |
| 622 | prod->state = PROD_ACTIVE; |
| 623 | APR_RING_INSERT_TAIL(&workers->prod_active, prod, ap_conn_producer_t, link); |
| 624 | wake_idle_worker(workers, prod); |
| 625 | } |
| 626 | else if (PROD_JOINED == prod->state) { |
| 627 | rv = APR_EINVAL; |
| 628 | } |
| 629 | apr_thread_mutex_unlock(workers->lock); |
| 630 | return rv; |
| 631 | } |
no test coverage detected