[Haskell-cafe] Concurrency best practices?

Evan Laforge qdunkan at gmail.com
Sat Feb 5 20:37:44 CET 2011


On Sat, Feb 5, 2011 at 8:19 AM, Jesper Louis Andersen
<jesper.louis.andersen at gmail.com> wrote:
> On Sat, Feb 5, 2011 at 17:13, Andrew Coppin <andrewcoppin at btinternet.com> wrote:
>> On 05/02/2011 12:56 PM, Jesper Louis Andersen wrote:
>>
>> Presumably messages added to the channel appear immediately after the
>> transaction commits. The problem is, I think GHC's STM implementation might
>> mean that if two transactions both try to log a message, they both get
>> rolled back...
>>
>
> Yes, this is the performance caveat I was hinting at. When logging
> becomes heavy and transactions are *not* completing, you will have
> transaction retries due to the logging. If the transaction completes
> however, it is not that much of a problem.

I recall reading that clojure has a concept of associative
combination.  If you can declare that certain operations are
associative then the runtime doesn't have to care if they get out of
order.



More information about the Haskell-Cafe mailing list