Michael Vaner Wrote:
> However, if you had a thread for every user, it still
> could make the processing in-order and be parallel
> on the different users (and it is where the load
> comes, from many users, no?)
There are some fun complications here as well.
Two users send a message to a MUC room. UserA sends his message, userB sends his message.
The Async infrastructure in the server wakes up and starts processing. Because the processing order of UserA and UserB is non-deterministic, userB's message gets processed first and posted to the room. The room replies, and sends UserA a message. That message is, "You can't join this room.".
The server then rejects UserA's message, even though his original message was "User B cannot send messages to this room. " and it was actually sent before UserB sent his message.
These problems can very complicated, and the race conditions are really there.
--
Chris Mullins