|
|
|
|
|
by JoeAltmaier
5625 days ago
|
|
Yes, and its because programming languages actually provide almost nothing to help out here. E.g. methods cannot be declared 'non-reentrant'. Data cannot be declared 'atomic'. Yes, you can hack together solutions using library methods etc. but the language doesn't help much. We wrote an 'operating environment' for a major computer manufacturer once - a storage device they eventually cancelled (hardware was problematical). Programmers wrote objects that were each invoked single-threaded, passed workitem messages between services instead of directly calling. The environment managed message queues, handled all the threading and reentrancy invisibly. The programming team loved it. They could write restartable, failoverable modules in this model without every dealing for an instant with concurrency explicitely. |
|