Summary: | Priority Inversion Problem? | ||
---|---|---|---|
Product: | TAO | Reporter: | Abdul Sowayan <abdullah.sowayan> |
Component: | ORB | Assignee: | DOC Center Support List (internal) <tao-support> |
Status: | NEW --- | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | 1.5.9 | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | 2990 | ||
Bug Blocks: |
Description
Abdul Sowayan
2007-07-16 13:54:49 CDT
Hi Abdul, I think the easiest way to handle this would be to define an ACE_Priority_Inheritance_Thread_Mutex class and/or an ACE_Priority_Ceiling_Thread_Mutex class with the appropriate settings to get the desired results. We could then simply define TAO_SYNCH_MUTEX to whatever users desired. Please let me know if that makes sense. Thanks, Doug Hi Doug, Yes, that makes sense. The question is, for RT-based applications might not want to have an embrassing failure due to priority inversion such as the NASA's infamous Mars Pathfinder Mission. The question goes beyond TAO. Does it make sense under RT-OSes to have ACE_SYNCH_MUTEX and TAO_SYNCH_MUTEX utilize something like ACE_Priority_Inheritance_Thread_Mutex by default out of the box (that might have a performance implication), and if the user doesn't want that they can change/configure ACE_SYNCH_MUTEX and TAO_SYNCH_MUTEX to ACE_Thread_Mutex (as we have it today). Thanks, Abdul changed severity I think we shouldn't change ACE_SYNC_MUTEX and TAO_SYNC_MUTEX but add a new define for the type that has priority inheritance protocol. This can then be used for the CORBA RTMutexes and by users, but using a priority inheritance protocol everywhere will probably do more harm then it solves. |