|
|
|
|
|
by llenotre
900 days ago
|
|
A lot of memory and concurrency issues have been eliminated.
It is still a pain to debug, but a lot less than it was before though. As an example, there is not a lot of chances you forget to use a mutex since the compiler would remind it to you by an error. This is not a silver bullet though, things such as deadlocks are still present. Especially with interruptions. To give an example, if you decide to lock a mutex, then an interruption happens, the code that locks the mutex will stop running until the interruption is over. If the interruption itself tries to lock the same mutex, then you have a deadlock, and the typing system cannot help you with this kind of problem. The solution is to disable interruptions handling while the mutex is locked, but the compiler cannot enforce it. |
|