3 ms·
That pathfinder bug was a priority inversion caused by failing to enable priority inheritance when creating mutexes, not quite as simple as setting the prioriti
by jrabone 14y ago
That pathfinder bug was a priority inversion caused by failing to enable priority inheritance when creating mutexes, not quite as simple as setting the priorities wrong. VxWorks wasn't entirely at fault, although the priority inheritance feature was not obvious. Concurrency is hard. See http://research.microsoft.com/en-us/um/people/mbj/mars_pathfinder/mars_pathfinder.html http://research.microsoft.com/en-us/um/people/mbj/mars_pathf... for details.
- lcargill99 14y agoyou really, really should never write things such that task priorities must be of a certain arrangement for the thing to work properly. It's very bad form. Also, from the link "Tasks on the Pathfinder spacecraft were executed as threads with priorities that were assigned in the usual manner reflecting the relative urgency of these tasks." Yeaaaaaugh! "PRIORITIES DO NOT WORK THAT WAY!" - Morbo.