Hi all,

I am performing some heavy-duty load testing on a networked APR based
server on Windows.

After each request I close the client socket with the code (see below).

I've noticed random hangs on "apr_soket_close", i.e, the the "trying
apr_socket_close" message is printed out, but not the next "Client
socket closed".

My question is: is the code below correct? (i.e, apr_socket_shutdown
followed by an apr_socket_closed) Is there a know bug with
apr_socket_close?

Thanks in advance,
Antonio

P.S.: The code

void thread_close_socket(apr_socket_t *client_socket)
{
        apr_status_t status;

        LOG(LOG_DEBUG, "Trying apr_socket_shutdown on socket %p...\n", 
client_socket);
        status = apr_socket_shutdown(client_socket, APR_SHUTDOWN_READWRITE);
        if (status != APR_SUCCESS) {
                LOG(LOG_ERROR, "Failed to shutdown socket %p\n",
                                client_socket);
        }
        LOG(LOG_DEBUG, "Trying apr_socket_close on socket %p...\n", 
client_socket);
        status = apr_socket_close(client_socket);
        if (status != APR_SUCCESS) {
                LOG(LOG_ERROR, "Failed to close socket %p\n",
                                client_socket);
        }
        LOG(LOG_DEBUG, "Client socket closed\n");
}

Reply via email to