[mpp_mem]: Reduce mutex lock range

Change-Id: Ic70f0d66ad20878bca0b4ad3a5d5e933f96ca4b3
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2021-04-21 15:32:00 +08:00
parent a26e71291e
commit a4a9effd33

View File

@@ -642,7 +642,6 @@ void MppMemService::dump(const char *caller)
void *mpp_osal_malloc(const char *caller, size_t size) void *mpp_osal_malloc(const char *caller, size_t size)
{ {
AutoMutex auto_lock(&service.lock);
RK_U32 debug = service.debug; RK_U32 debug = service.debug;
size_t size_align = MEM_ALIGNED(size); size_t size_align = MEM_ALIGNED(size);
size_t size_real = (debug & MEM_EXT_ROOM) ? (size_align + 2 * MEM_ALIGN) : size_t size_real = (debug & MEM_EXT_ROOM) ? (size_align + 2 * MEM_ALIGN) :
@@ -652,6 +651,7 @@ void *mpp_osal_malloc(const char *caller, size_t size)
os_malloc(&ptr, MEM_ALIGN, size_real); os_malloc(&ptr, MEM_ALIGN, size_real);
if (debug) { if (debug) {
AutoMutex auto_lock(&service.lock);
service.add_log(MEM_MALLOC, caller, NULL, ptr, size, size_real); service.add_log(MEM_MALLOC, caller, NULL, ptr, size, size_real);
if (ptr) { if (ptr) {
@@ -677,7 +677,6 @@ void *mpp_osal_calloc(const char *caller, size_t size)
void *mpp_osal_realloc(const char *caller, void *ptr, size_t size) void *mpp_osal_realloc(const char *caller, void *ptr, size_t size)
{ {
AutoMutex auto_lock(&service.lock);
RK_U32 debug = service.debug; RK_U32 debug = service.debug;
void *ret; void *ret;
@@ -700,6 +699,8 @@ void *mpp_osal_realloc(const char *caller, void *ptr, size_t size)
// if realloc fail the original buffer will be kept the same. // if realloc fail the original buffer will be kept the same.
mpp_err("mpp_realloc ptr %p to size %d failed\n", ptr, size); mpp_err("mpp_realloc ptr %p to size %d failed\n", ptr, size);
} else { } else {
AutoMutex auto_lock(&service.lock);
// if realloc success reset the node and record // if realloc success reset the node and record
if (debug) { if (debug) {
void *ret_ptr = (debug & MEM_EXT_ROOM) ? void *ret_ptr = (debug & MEM_EXT_ROOM) ?
@@ -716,7 +717,6 @@ void *mpp_osal_realloc(const char *caller, void *ptr, size_t size)
void mpp_osal_free(const char *caller, void *ptr) void mpp_osal_free(const char *caller, void *ptr)
{ {
AutoMutex auto_lock(&service.lock);
RK_U32 debug = service.debug; RK_U32 debug = service.debug;
if (NULL == ptr) if (NULL == ptr)
return; return;
@@ -728,6 +728,7 @@ void mpp_osal_free(const char *caller, void *ptr)
size_t size = 0; size_t size = 0;
AutoMutex auto_lock(&service.lock);
if (debug & MEM_POISON) { if (debug & MEM_POISON) {
// NODE: keep this node and delete delay node // NODE: keep this node and delete delay node
void *ret = service.delay_del_node(caller, ptr, &size); void *ret = service.delay_del_node(caller, ptr, &size);