void
ngx_http_upstream_free_round_robin_peer(ngx_peer_connection_t *pc, void *data,
ngx_uint_t state)
+{
+#if (NGX_HTTP_UPSTREAM_ZONE)
+ ngx_http_upstream_rr_peer_data_t *rrp = data;
+
+ ngx_http_upstream_rr_peers_rlock(rrp->peers);
+ ngx_http_upstream_rr_peer_lock(rrp->peers, rrp->current);
+#endif
+
+ ngx_http_upstream_free_round_robin_peer_locked(pc, data, state);
+}
+
+
+void
+ngx_http_upstream_free_round_robin_peer_locked(ngx_peer_connection_t *pc,
+ void *data, ngx_uint_t state)
{
ngx_http_upstream_rr_peer_data_t *rrp = data;
peer = rrp->current;
- ngx_http_upstream_rr_peers_rlock(rrp->peers);
- ngx_http_upstream_rr_peer_lock(rrp->peers, peer);
-
if (rrp->peers->single) {
if (peer->fails) {
void *data);
void ngx_http_upstream_free_round_robin_peer(ngx_peer_connection_t *pc,
void *data, ngx_uint_t state);
+void ngx_http_upstream_free_round_robin_peer_locked(ngx_peer_connection_t *pc,
+ void *data, ngx_uint_t state);
#if (NGX_HTTP_SSL)
ngx_int_t
void
ngx_stream_upstream_free_round_robin_peer(ngx_peer_connection_t *pc, void *data,
ngx_uint_t state)
+{
+#if (NGX_STREAM_UPSTREAM_ZONE)
+ ngx_stream_upstream_rr_peer_data_t *rrp = data;
+
+ ngx_stream_upstream_rr_peers_rlock(rrp->peers);
+ ngx_stream_upstream_rr_peer_lock(rrp->peers, rrp->current);
+#endif
+
+ ngx_stream_upstream_free_round_robin_peer_locked(pc, data, state);
+}
+
+
+void
+ngx_stream_upstream_free_round_robin_peer_locked(ngx_peer_connection_t *pc,
+ void *data, ngx_uint_t state)
{
ngx_stream_upstream_rr_peer_data_t *rrp = data;
peer = rrp->current;
- ngx_stream_upstream_rr_peers_rlock(rrp->peers);
- ngx_stream_upstream_rr_peer_lock(rrp->peers, peer);
-
if (rrp->peers->single) {
if (peer->fails) {
void *data);
void ngx_stream_upstream_free_round_robin_peer(ngx_peer_connection_t *pc,
void *data, ngx_uint_t state);
+void ngx_stream_upstream_free_round_robin_peer_locked(ngx_peer_connection_t *pc,
+ void *data, ngx_uint_t state);
#endif /* _NGX_STREAM_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ */