Some recent benchmarking I did for a paper on conjunction suggested the following as costs for channels, at least in Haskell: adding choice to channels made normal (not-involving-choice) communications about twice as slow as standard STM channel communications. That's a bit woolly though, and comes with lots of caveats.
Incidentally, I seem to recall Peter saying that the CSP choice operator technically has some nasty complexity arising from choosing based on the value coming over the channel. I think you can get things like one side agreeing to communicate any number over 4 billion, and the other side agreeing to communicate any prime number, and the run-time has to sort it out. My article above doesn't cover that, but talks about implementing choice to the level of occam+output guards.
Thanks,
Neil.
-------- Original Message --------
Subject: Cost of Choise operators in CSP?
From: "Campbell, John" <John.Campbell@xxxxxxxxxxxxxx>
Date: Tue, May 18, 2010 11:25 pm
To: "Occam Family" <occam-com@xxxxxxxxxx>
Hi All
Can anyone point me at a discussion of the cost of actually implementing the
choice operator as it functions in CSP?
Thanks. -jc