libpq: Report strerror on pthread_mutex_lock() failure
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 18 Aug 2013 01:46:32 +0000 (21:46 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 18 Aug 2013 01:52:35 +0000 (21:52 -0400)
src/interfaces/libpq/fe-secure.c

index 0176bd7ef7e41df64ac7adba46c3508ad983e7eb..1ac0ce1aec173262e76163cdf5b8687417ae0700 100644 (file)
@@ -257,14 +257,18 @@ pqsecure_open_client(PGconn *conn)
    /* First time through? */
    if (conn->ssl == NULL)
    {
+#ifdef ENABLE_THREAD_SAFETY
+       int rc;
+#endif
+
        /* We cannot use MSG_NOSIGNAL to block SIGPIPE when using SSL */
        conn->sigpipe_flag = false;
 
 #ifdef ENABLE_THREAD_SAFETY
-       if (pthread_mutex_lock(&ssl_config_mutex))
+       if ((rc = pthread_mutex_lock(&ssl_config_mutex)))
        {
            printfPQExpBuffer(&conn->errorMessage,
-                  libpq_gettext("unable to acquire mutex\n"));
+                             libpq_gettext("could not acquire mutex: %s\n"), strerror(rc));
            return PGRES_POLLING_FAILED;
        }
 #endif
@@ -1114,10 +1118,12 @@ initialize_SSL(PGconn *conn)
         * SSL_context struct.
         */
 #ifdef ENABLE_THREAD_SAFETY
-       if (pthread_mutex_lock(&ssl_config_mutex))
+       int rc;
+
+       if ((rc = pthread_mutex_lock(&ssl_config_mutex)))
        {
            printfPQExpBuffer(&conn->errorMessage,
-                  libpq_gettext("unable to acquire mutex\n"));
+                             libpq_gettext("could not acquire mutex: %s\n"), strerror(rc));
            return -1;
        }
 #endif
@@ -1332,10 +1338,12 @@ initialize_SSL(PGconn *conn)
        X509_STORE *cvstore;
 
 #ifdef ENABLE_THREAD_SAFETY
-       if (pthread_mutex_lock(&ssl_config_mutex))
+       int rc;
+
+       if ((rc = pthread_mutex_lock(&ssl_config_mutex)))
        {
            printfPQExpBuffer(&conn->errorMessage,
-                  libpq_gettext("unable to acquire mutex\n"));
+                             libpq_gettext("could not acquire mutex: %s\n"), strerror(rc));
            return -1;
        }
 #endif