diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-06-06 09:24:31 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-06-06 09:25:37 -0700 |
| commit | bf2eb2eed3232cb9f3872d46c5e6bca8855840be (patch) | |
| tree | 0eeb9e6082d32c997814cd1c9d3fa850176fa4eb /src/core/endpt.c | |
| parent | 4771d04fb589c406ff8b2fc1b4edf93b2df42515 (diff) | |
| download | nng-bf2eb2eed3232cb9f3872d46c5e6bca8855840be.tar.gz nng-bf2eb2eed3232cb9f3872d46c5e6bca8855840be.tar.bz2 nng-bf2eb2eed3232cb9f3872d46c5e6bca8855840be.zip | |
Reconn times acquired atomically by socket under lock.
Diffstat (limited to 'src/core/endpt.c')
| -rw-r--r-- | src/core/endpt.c | 21 |
1 files changed, 7 insertions, 14 deletions
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; } |
