jlaitine commented on code in PR #16194: URL: https://github.com/apache/nuttx/pull/16194#discussion_r2059591043
########## sched/semaphore/sem_post.c: ########## @@ -85,19 +87,54 @@ int nxsem_post_slow(FAR sem_t *sem) flags = enter_critical_section(); - /* Check the maximum allowable value */ + if (mutex) + { + /* Mutex post from interrupt context is not allowed */ + + DEBUGASSERT(!up_interrupt_context()); + + /* Lock the mutex for us by setting the blocking bit */ + + mholder = atomic_fetch_or(NXSEM_MHOLDER(sem), NXSEM_MBLOCKS_BIT); + + /* Mutex post from another thread is not allowed, unless Review Comment: Yes, sticking to that for now... all my attempts to remove it caused havoc, especially with USB CDCACM (in the drone mavlink over USB). Replicating the functionality of nxmutex_reset just does the trick for now. Eventually I got fed up with debugging USB and serial drivers. There has to be some design flaw in the serial if one needs to "reset" mutexes, I just couldn't wrap my head around that yet, I am currently working on a bit too many things at the same time.... -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org