fix: change bugs related to expired udf
This commit is contained in:
parent
adec92b0b2
commit
8ab1aa4ac9
|
@ -589,18 +589,19 @@ SUdf *udfdGetOrCreateUdf(const char *udfName) {
|
||||||
uv_mutex_lock(&global.udfsMutex);
|
uv_mutex_lock(&global.udfsMutex);
|
||||||
SUdf **pUdfHash = taosHashGet(global.udfsHash, udfName, strlen(udfName));
|
SUdf **pUdfHash = taosHashGet(global.udfsHash, udfName, strlen(udfName));
|
||||||
int64_t currTime = taosGetTimestampSec();
|
int64_t currTime = taosGetTimestampSec();
|
||||||
bool expired = currTime - (*pUdfHash)->lastFetchTime > 10 * 1000;
|
bool expired = false;
|
||||||
if (pUdfHash && !expired) {
|
if (pUdfHash) {
|
||||||
|
expired = currTime - (*pUdfHash)->lastFetchTime > 10 * 1000;
|
||||||
|
if (!expired) {
|
||||||
++(*pUdfHash)->refCount;
|
++(*pUdfHash)->refCount;
|
||||||
SUdf *udf = *pUdfHash;
|
SUdf *udf = *pUdfHash;
|
||||||
uv_mutex_unlock(&global.udfsMutex);
|
uv_mutex_unlock(&global.udfsMutex);
|
||||||
return udf;
|
return udf;
|
||||||
}
|
} else {
|
||||||
|
|
||||||
if (pUdfHash && expired) {
|
|
||||||
(*pUdfHash)->expired = true;
|
(*pUdfHash)->expired = true;
|
||||||
taosHashRemove(global.udfsHash, udfName, strlen(udfName));
|
taosHashRemove(global.udfsHash, udfName, strlen(udfName));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SUdf *udf = udfdNewUdf(udfName);
|
SUdf *udf = udfdNewUdf(udfName);
|
||||||
SUdf **pUdf = &udf;
|
SUdf **pUdf = &udf;
|
||||||
|
|
Loading…
Reference in New Issue