Hi,all.<br>I'm thinking about how to deal with critical region in my POSIX key project. My current approach is the one-rbtree approach, that is the critical region are one global rbtree which contains all the keys' data value and the chain-list in each thread's TCB. I'm confused with _Thread_Disable_dispatch() and _ISR_Disable(_level). What's the difference between them? Does _ISR_Disable() disable thread dispatch? I also find some operations like _RBTree_Find(), _Chain_Insert() in the RBTree API and Chain API call _ISR_Disable(), and some operation like _Objects_Get() which is called by _POSIX_Keys_Get() calls _Thread_Diable_dispath().<br>
BTW, I also checked the IRC meeting log, and find Joel has said "allocating memory from the workspace is a different lock than thread disable dispatch". Joel, what are the details of the different lock?<br clear="all">
<br>-- <br>Best wishes!<br>Zhongwei Yao<br><br>