Hacker News new | ask | show | jobs
by bcrosby95 2054 days ago
Anytime the validity of an operation depends upon the state of multiple processes you need to make sure you aren't creating a race condition, and depending upon your solution you might introduce a chance of deadlocks or timeouts.

If it's just 2 processes then it's pretty easy: process 1 asks process 2 to modify itself, then process 1 modifies itself. However, this can lead to deadlocks/timeouts if both P1 and P2 are attempting to perform this operation at the same time.

And once you're into 3 or more processes, message passing as a method of synchronization breaks down.

Ideally you avoid this stuff with your design. But since processes fill so many roles you can't always avoid it.