Challenge

 

Hi everyone,
 
Id like to propose a small challenge to all multiagent modelers out there, sort of like a "99 bottles of beer" programming assignment.
 
The purpose of this assignment would be to find out (I'd like to learn, at least) how "safe" the modeling tools (languages) are when it comes to concurrency, or more specifically when there's a problem with simulations giving different results depending on the order in which agents are processed at each step. The example goes as follows:
 
There are five dots, all on a single line, and all of them white except the middle one. At each step, if any white dot has a black dot for its immediate neighbor, it should turn black.
 
If anyone would be so kind as to spend five minutes of their time and post a piece of code in a modeling language of their choice, I'd be grateful :)