Lines Matching refs:ncomp

184 #define	QUEUE_INSERT1(hio, name, ncomp)	do {				\
185 mtx_lock(&hio_##name##_list_lock[(ncomp)]); \
186 if (TAILQ_EMPTY(&hio_##name##_list[(ncomp)])) \
187 cv_broadcast(&hio_##name##_list_cond[(ncomp)]); \
188 TAILQ_INSERT_TAIL(&hio_##name##_list[(ncomp)], (hio), \
189 hio_next[(ncomp)]); \
190 hio_##name##_list_size[(ncomp)]++; \
191 mtx_unlock(&hio_##name##_list_lock[(ncomp)]); \
201 #define QUEUE_TAKE1(hio, name, ncomp, timeout) do { \
204 mtx_lock(&hio_##name##_list_lock[(ncomp)]); \
206 while (((hio) = TAILQ_FIRST(&hio_##name##_list[(ncomp)])) == NULL && !_last) { \
207 cv_timedwait(&hio_##name##_list_cond[(ncomp)], \
208 &hio_##name##_list_lock[(ncomp)], (timeout)); \
213 PJDLOG_ASSERT(hio_##name##_list_size[(ncomp)] != 0); \
214 hio_##name##_list_size[(ncomp)]--; \
215 TAILQ_REMOVE(&hio_##name##_list[(ncomp)], (hio), \
216 hio_next[(ncomp)]); \
218 mtx_unlock(&hio_##name##_list_lock[(ncomp)]); \
1138 remote_close(struct hast_resource *res, int ncomp)
1141 rw_wlock(&hio_remote_lock[ncomp]);
1146 if (!ISCONNECTED(res, ncomp)) {
1149 rw_unlock(&hio_remote_lock[ncomp]);
1165 rw_unlock(&hio_remote_lock[ncomp]);
1184 unsigned int ncomp;
1195 ncomp = 1;
1196 rw_rlock(&hio_remote_lock[ncomp]);
1197 if (!ISCONNECTED(res, ncomp)) {
1207 rw_unlock(&hio_remote_lock[ncomp]);
1230 unsigned int ii, ncomp, ncomps;
1276 ncomp = 0;
1302 ncomp = 0;
1312 ncomp = 1;
1373 for (ii = ncomp; ii < ncomps; ii++)
1390 unsigned int ncomp, rncomp;
1394 ncomp = 0;
1400 QUEUE_TAKE1(hio, send, ncomp, 0);
1409 hio->hio_errors[ncomp] = 0;
1432 hio->hio_errors[ncomp] = errno;
1437 hio->hio_errors[ncomp] = EIO;
1442 hio->hio_errors[ncomp] = 0;
1454 hio->hio_errors[ncomp] = errno;
1459 hio->hio_errors[ncomp] = 0;
1472 hio->hio_errors[ncomp] = errno;
1477 hio->hio_errors[ncomp] = 0;
1505 keepalive_send(struct hast_resource *res, unsigned int ncomp)
1509 rw_rlock(&hio_remote_lock[ncomp]);
1511 if (!ISCONNECTED(res, ncomp)) {
1512 rw_unlock(&hio_remote_lock[ncomp]);
1522 rw_unlock(&hio_remote_lock[ncomp]);
1529 rw_unlock(&hio_remote_lock[ncomp]);
1533 remote_close(res, ncomp);
1537 rw_unlock(&hio_remote_lock[ncomp]);
1553 unsigned int ncomp;
1560 ncomp = 1;
1565 QUEUE_TAKE1(hio, send, ncomp, HAST_KEEPALIVE);
1569 keepalive_send(res, ncomp);
1612 hio->hio_errors[ncomp] = nv_error(nv);
1625 rw_rlock(&hio_remote_lock[ncomp]);
1626 if (!ISCONNECTED(res, ncomp)) {
1627 rw_unlock(&hio_remote_lock[ncomp]);
1628 hio->hio_errors[ncomp] = ENOTCONN;
1639 mtx_lock(&hio_recv_list_lock[ncomp]);
1640 wakeup = TAILQ_EMPTY(&hio_recv_list[ncomp]);
1641 TAILQ_INSERT_TAIL(&hio_recv_list[ncomp], hio, hio_next[ncomp]);
1642 hio_recv_list_size[ncomp]++;
1643 mtx_unlock(&hio_recv_list_lock[ncomp]);
1646 hio->hio_errors[ncomp] = errno;
1647 rw_unlock(&hio_remote_lock[ncomp]);
1652 strerror(hio->hio_errors[ncomp]));
1653 remote_close(res, ncomp);
1655 rw_unlock(&hio_remote_lock[ncomp]);
1659 cv_signal(&hio_recv_list_cond[ncomp]);
1709 unsigned int ncomp;
1715 ncomp = 1;
1719 mtx_lock(&hio_recv_list_lock[ncomp]);
1720 while (TAILQ_EMPTY(&hio_recv_list[ncomp])) {
1722 cv_wait(&hio_recv_list_cond[ncomp],
1723 &hio_recv_list_lock[ncomp]);
1725 mtx_unlock(&hio_recv_list_lock[ncomp]);
1729 rw_rlock(&hio_remote_lock[ncomp]);
1730 if (!ISCONNECTED(res, ncomp)) {
1731 rw_unlock(&hio_remote_lock[ncomp]);
1736 mtx_lock(&hio_recv_list_lock[ncomp]);
1737 hio = TAILQ_FIRST(&hio_recv_list[ncomp]);
1739 TAILQ_REMOVE(&hio_recv_list[ncomp], hio,
1740 hio_next[ncomp]);
1741 hio_recv_list_size[ncomp]--;
1742 mtx_unlock(&hio_recv_list_lock[ncomp]);
1743 hio->hio_errors[ncomp] = ENOTCONN;
1749 rw_unlock(&hio_remote_lock[ncomp]);
1750 remote_close(res, ncomp);
1753 rw_unlock(&hio_remote_lock[ncomp]);
1761 mtx_lock(&hio_recv_list_lock[ncomp]);
1762 TAILQ_FOREACH(hio, &hio_recv_list[ncomp], hio_next[ncomp]) {
1764 TAILQ_REMOVE(&hio_recv_list[ncomp], hio,
1765 hio_next[ncomp]);
1766 hio_recv_list_size[ncomp]--;
1770 mtx_unlock(&hio_recv_list_lock[ncomp]);
1781 hio->hio_errors[ncomp] = error;
1789 rw_rlock(&hio_remote_lock[ncomp]);
1790 if (!ISCONNECTED(res, ncomp)) {
1791 rw_unlock(&hio_remote_lock[ncomp]);
1797 hio->hio_errors[ncomp] = errno;
1800 rw_unlock(&hio_remote_lock[ncomp]);
1802 remote_close(res, ncomp);
1805 rw_unlock(&hio_remote_lock[ncomp]);
1814 hio->hio_errors[ncomp] = 0;
1820 hio->hio_errors[ncomp] != 0);
1827 if (hio->hio_errors[ncomp] == 0) {
1831 mtx_lock(&hio_recv_list_lock[ncomp]);
1832 TAILQ_INSERT_TAIL(&hio_recv_list[ncomp],
1833 hio, hio_next[ncomp]);
1834 hio_recv_list_size[ncomp]++;
1835 mtx_unlock(&hio_recv_list_lock[ncomp]);
1963 unsigned int ii, ncomp, ncomps;
2029 ncomp = 1;
2030 rw_rlock(&hio_remote_lock[ncomp]);
2031 if (ISCONNECTED(res, ncomp)) {
2061 rw_unlock(&hio_remote_lock[ncomp]);
2122 ncomp = 0;
2130 ncomp = 1;
2134 QUEUE_INSERT1(hio, send, ncomp);
2144 if (hio->hio_errors[ncomp] != 0) {
2146 strerror(hio->hio_errors[ncomp]));
2169 ncomp = 1;
2177 ncomp = 0;
2184 QUEUE_INSERT1(hio, send, ncomp);
2194 if (hio->hio_errors[ncomp] != 0) {
2196 strerror(hio->hio_errors[ncomp]));
2344 guard_one(struct hast_resource *res, unsigned int ncomp)
2348 if (!ISREMOTE(ncomp))
2351 rw_rlock(&hio_remote_lock[ncomp]);
2354 rw_unlock(&hio_remote_lock[ncomp]);
2358 if (ISCONNECTED(res, ncomp)) {
2361 rw_unlock(&hio_remote_lock[ncomp]);
2373 rw_unlock(&hio_remote_lock[ncomp]);
2378 rw_wlock(&hio_remote_lock[ncomp]);
2384 rw_unlock(&hio_remote_lock[ncomp]);