Fix module test failures due to locking
Former-commit-id: 420ccdfbaebc452b9b374b54c6ebeec4a3ffea36
This commit is contained in:
parent
51ae66539d
commit
2085e21dca
@ -329,6 +329,7 @@ static int s_cAcquisitionsServer = 0;
|
|||||||
static int s_cAcquisitionsModule = 0;
|
static int s_cAcquisitionsModule = 0;
|
||||||
static std::mutex s_mutex;
|
static std::mutex s_mutex;
|
||||||
static std::condition_variable s_cv;
|
static std::condition_variable s_cv;
|
||||||
|
static std::recursive_mutex s_mutexModule;
|
||||||
|
|
||||||
typedef void (*RedisModuleForkDoneHandler) (int exitcode, int bysignal, void *user_data);
|
typedef void (*RedisModuleForkDoneHandler) (int exitcode, int bysignal, void *user_data);
|
||||||
|
|
||||||
@ -5055,6 +5056,7 @@ void moduleAcquireGIL(int fServerThread) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
s_mutexModule.lock();
|
||||||
++s_cAcquisitionsModule;
|
++s_cAcquisitionsModule;
|
||||||
fModuleGILWlocked++;
|
fModuleGILWlocked++;
|
||||||
}
|
}
|
||||||
@ -5079,6 +5081,8 @@ int moduleTryAcquireGIL(bool fServerThread) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (!s_mutexModule.try_lock())
|
||||||
|
return 1;
|
||||||
++s_cAcquisitionsModule;
|
++s_cAcquisitionsModule;
|
||||||
fModuleGILWlocked++;
|
fModuleGILWlocked++;
|
||||||
}
|
}
|
||||||
@ -5098,6 +5102,7 @@ void moduleReleaseGIL(int fServerThread) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
s_mutexModule.unlock();
|
||||||
--s_cAcquisitionsModule;
|
--s_cAcquisitionsModule;
|
||||||
fModuleGILWlocked--;
|
fModuleGILWlocked--;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user