Version française
Home     About     Download     Resources     Contact us    
Browse thread
Where's my non-classical shared memory concurrency technology?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Berke Durak <berke.durak@g...>
Subject: Re: [Caml-list] Re: Where's my non-classical shared memory concurrency technology?
On Mon, May 19, 2008 at 11:47 PM, Jon Harrop <jon@ffconsultancy.com> wrote:
>
> There are two problems with what you wrote in this context:
>
> 1. You are replying to a thread about shared-memory parallelism with a
> discussion of sequential concurrency, which is completely different.
>
> 2. You keep saying "avoiding threads" but what you mean is "avoiding
> parallelism".

No, because Ocaml threads today avoid parallelism, but you can still get
inconsistency bugs.  You'd only get them faster with parallel execution :)

> In essence, your solution to bugs that arise due to parallelism is to avoid
> parallelism. While true, that is not going to help anyone exploit multicores.

We're going in circles again.  I was just arguing, again, that Thread.create +
Mutex.lock = more bugs than event-driven execution.  Now, yes, that doesn't
heat all your cores, so that's why I changed the subject to "where is
my shared-memory concurrency technology?" - not a rhetorical question,
but a real one.

So, my question is :

Given that shared, mutable global state accessed with multiple threads
is a recipe for bugs that no amount of data hiding can solve (because
-locking-sections-don't-compose-),
did anyone invent and implement a usable type or other system for
making concurrency
and parallelism safe?

If the answer is STM, please show me some non-trivial application that
uses it, preferably
in an impure language.
-- 
Berke Durak