Skip to content

Commit 9412c71

Browse files
committed
sem: fix assert failed when open CONFIG_PRIORITY_INHERITANCE
set CONFIG_PRIORITY_INHERITANCE=y set CONFIG_SEM_PREALLOCHOLDERS=0 or CONFIG_SEM_PREALLOCHOLDERS=8 apache#24 0x4dcab71 in __assert assert/lib_assert.c:37 apache#25 0x4d6b0e9 in nxsem_destroyholder semaphore/sem_holder.c:602 apache#26 0x4d80cf7 in nxsem_destroy semaphore/sem_destroy.c:80 apache#27 0x4d80db9 in sem_destroy semaphore/sem_destroy.c:120 apache#28 0x4dcb077 in nxmutex_destroy misc/lib_mutex.c:122 apache#29 0x4dc6611 in pipecommon_freedev pipes/pipe_common.c:117 apache#30 0x4dc7fdc in pipecommon_close pipes/pipe_common.c:397 apache#31 0x4ed4f6d in file_close vfs/fs_close.c:78 apache#32 0x6a91133 in local_free local/local_conn.c:184 apache#33 0x6a92a9c in local_release local/local_release.c:129 apache#34 0x6a91d1a in local_subref local/local_conn.c:271 apache#35 0x6a75767 in local_close local/local_sockif.c:797 apache#36 0x4e978f6 in psock_close socket/net_close.c:102 apache#37 0x4eed1b9 in sock_file_close socket/socket.c:115 apache#38 0x4ed4f6d in file_close vfs/fs_close.c:78 apache#39 0x4ed1459 in nx_close_from_tcb inode/fs_files.c:754 apache#40 0x4ed1501 in nx_close inode/fs_files.c:781 apache#41 0x4ed154a in close inode/fs_files.c:819 apache#42 0x6bcb9ce in property_get kvdb/client.c:307 apache#43 0x6bcd465 in property_get_int32 kvdb/common.c:270 apache#44 0x5106c9a in tz_offset_restore app/miwear_bluetooth.c:745 apache#45 0x510893f in miwear_bluetooth_main app/miwear_bluetooth.c:1033 apache#46 0x4dcf5c8 in nxtask_startup sched/task_startup.c:70 apache#47 0x4d70873 in nxtask_start task/task_start.c:134 apache#48 0x4e04a07 in pre_start sim/sim_initialstate.c:52 Signed-off-by: ligd <liguiding1@xiaomi.com>
1 parent ffd817d commit 9412c71

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

sched/semaphore/sem_holder.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ void nxsem_destroyholder(FAR sem_t *sem)
601601
#else
602602
/* There may be an issue if there are multiple holders of the semaphore. */
603603

604-
DEBUGASSERT(sem->holder.htcb == NULL);
604+
DEBUGASSERT(sem->holder.htcb == NULL || sem->holder.htcb == this_task());
605605

606606
#endif
607607

0 commit comments

Comments
 (0)