This example is a simple use of IF model-checking for SDL projects. The SDL
system is simply a server process creating a client process when receiving a
message. However, there should never be more than 2 clients running at a given
time. All request messages received while there are 2 clients running are
saved and treated only when one of the running clients dies.

This constraint is described in the IF observer 'obs' in the project. To avoid
the IF simulation to be too long, the observer restricts the number of request
messages sent to the server to 4. It also counts the number of clients
appearing and dying, making sure there are always 2 or less running. If more
than 2 clients are running at a time, it goes into the error state
nb_clients_error and stops.

This project contains the buggy implementation of the server process, mainly
because the test for the number of running clients is done via a continuous
signal. Since in SDL, messages have priority over continuous signals, a request
message can be handled before the continuous signal has a chance to go into the
'Stalled' state saving request messages.

Checking the model should report errors, typically when 3 or more request
messages are sent in a row. To see the scenario causing the error, select one
of the errors appearing in the window that opens after the checking and click
on the 'Generate MSC' button. This will add a MSC to the project showing how
the error occured.
