From f5e6c695a7881c572a66bb5f62e5e9b641b6b542 Mon Sep 17 00:00:00 2001 From: krangelov Date: Tue, 16 Nov 2021 08:53:22 +0100 Subject: [PATCH] make r/w lock shared only if there is a shared file as well --- src/runtime/c/pgf/db.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/runtime/c/pgf/db.cxx b/src/runtime/c/pgf/db.cxx index 377765bbd..e76ceaed9 100644 --- a/src/runtime/c/pgf/db.cxx +++ b/src/runtime/c/pgf/db.cxx @@ -690,9 +690,11 @@ void PgfDB::init_state(size_t size) if ((code = pthread_rwlockattr_init(&attr)) != 0) { throw pgf_systemerror(code); } - if ((code = pthread_rwlockattr_setpshared(&attr, PTHREAD_PROCESS_SHARED)) != 0) { - pthread_rwlockattr_destroy(&attr); - throw pgf_systemerror(code); + if (fd > 0) { + if ((code = pthread_rwlockattr_setpshared(&attr, PTHREAD_PROCESS_SHARED)) != 0) { + pthread_rwlockattr_destroy(&attr); + throw pgf_systemerror(code); + } } if ((code = pthread_rwlock_init(&ms->rwlock, &attr)) != 0) { pthread_rwlockattr_destroy(&attr);