I was going through NGINX source code to implement keepalive for nginx zeromq plugin that I have developed.
I have been inspired by ngx_http_upstream_keepalive_module. Was wondering why nginx uses a kind of two linkedlist based stack implementation to implement keepalive connection pool. Why not use typical linkedlist based queue implementation.
Kindly refer to ngx_http_upstream_keepalive_module.c :ngx_http_upstream_get_keepalive_peer ngx_http_upstream_keepalive_module.c:ngx_http_upstream_free_keepalive_peer
I used exactly like this without wondering why, now I kind of want to know the reason.