From bf2eb2eed3232cb9f3872d46c5e6bca8855840be Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Tue, 6 Jun 2017 09:24:31 -0700 Subject: Reconn times acquired atomically by socket under lock. --- src/core/endpt.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'src/core/endpt.c') diff --git a/src/core/endpt.c b/src/core/endpt.c index de166aff..d598caa2 100644 --- a/src/core/endpt.c +++ b/src/core/endpt.c @@ -238,25 +238,18 @@ nni_dialer(void *arg) nni_ep *ep = arg; int rv; nni_time cooldown; - nni_duration maxrtime; - nni_duration defrtime; + nni_duration maxrtime, nmaxrtime; + nni_duration defrtime, ndefrtime; nni_duration rtime; - // XXX: these need to be obtained from the socket using a lock. - defrtime = ep->ep_sock->s_reconn; - if ((maxrtime = ep->ep_sock->s_reconnmax) == 0) { - maxrtime = defrtime; - } + nni_sock_reconntimes(ep->ep_sock, &defrtime, &maxrtime); for (;;) { - // XXX: socket lock please... - if ((defrtime != ep->ep_sock->s_reconn) || - (maxrtime != ep->ep_sock->s_reconnmax)) { + nni_sock_reconntimes(ep->ep_sock, &ndefrtime, &nmaxrtime); + if ((defrtime != ndefrtime) || (maxrtime != nmaxrtime)) { // Times changed, so reset them. - defrtime = ep->ep_sock->s_reconn; - if ((maxrtime = ep->ep_sock->s_reconnmax) == 0) { - maxrtime = defrtime; - } + defrtime = ndefrtime; + maxrtime = nmaxrtime; rtime = defrtime; } -- cgit v1.2.3-70-g09d2