jlaitine commented on code in PR #16194:
URL: https://github.com/apache/nuttx/pull/16194#discussion_r2043740058


##########
include/semaphore.h:
##########
@@ -104,8 +104,16 @@ struct semholder_s
 
 struct sem_s
 {
-  volatile int32_t semcount;     /* >0 -> Num counts available */
-                                 /* <0 -> Num tasks waiting for semaphore */
+  union
+    {
+      volatile int32_t semcount;     /* >0 -> Num counts available */
+                                     /* <0 -> Num tasks waiting for semaphore 
*/
+      volatile uint32_t mholder;     /* == NXMUTEX_NO_HOLDER -> mutex has no 
holder */

Review Comment:
   Ok, decided to keep it like this for now, explanation below. I think that 
mutex holder is *not* an integer, but it is essentially a bit-field (but due to 
bitfield ordering is not standard, it is just managed via bitwise 
oprations/macros).
   
   So changing that to int32 would be just confusing, I don't really like the 
obscure way of first setting the highest bit manually and later checking that 
the int has become negative. Obviously works, but again, mholder is not an 
integer.
   



-- 
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

Reply via email to