postgres.git / summary / log / commit / refs

commit    fe885c6e36667f2fbbf98d1f2f9657ee32acb1c1
Author:   Peter Eisentraut <peter_e@gmx.net>
Date:     Sun Aug 18 01:46:32 2013 +0000
First released in: 9.4.0, 9.0.14, 9.1.10, 9.2.5, 9.3.0

    libpq: Report strerror on pthread_mutex_lock() failure


src/interfaces/libpq/fe-secure.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index b16968b049f..3bd01131c63 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -256,14 +256,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 @@ -1115,10 +1119,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 @@ -1333,10 +1339,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 [parent: f1d5fce7cf11]