Concurrency architecture for D2

Michel Fortin michel.fortin at michelf.com
Sat Jan 9 07:04:23 PST 2010


On 2010-01-08 03:50:26 -0500, Walter Bright <newshound1 at digitalmars.com> said:

> Michel Fortin wrote:
>> Also keep in mind that we don't really need a shared vision among 
>> everyone. What's needed is someone who takes the decisions. Discussion 
>> is only needed to help that person take the right decisions. Although 
>> consensus among all members certainly boosts the decider 
>> self-confidence, it is not required, and not necessarily desirable 
>> either. A consensus among only a few key people is all that is needed, 
>> and this has little to do with who is allowed to raise issues and 
>> propose solutions.
> 
> The real problem with a concurrency model is that very few programmers 
> understand the issues.
> [...]
> 
> Since then I have tried to master this topic, but I don't have much 
> experience writing complex multithreaded code. So what we need are 
> people who are experienced with MT code who can evaluate the design to 
> see if we missed the boat or not. I'd rather not shoot at the moon yet 
> wind up orbiting some asteroid.

I'm not sure what you're replying to in the above message. I was simply 
saying that to accomplish progress in something, the only necessary 
condition is to have an understanding among those who will actually 
implement that thing. Other opinions can be very useful, they can also 
be irrelevant, but you don't absolutely need a consensus among every 
participant in the discussion for something to advance.

You're making a case for making "shared" help programmers because most 
don't grasp all the implications of shared memory between processors. 
That's good but I don't really see how it relates.

By the way, I have seen my lot of multithreaded code in C++, sometime 
very well written, sometime just wrong, and sometime correct but 
obscure enough that takes help from the original author to understand. 
I've written code that probably enters in all these categories, and 
debugged my share of hard to track concurrency issues too. Were I was 
working previously, the most time-consuming bugs were always 
concurrency issues, generally race conditions happening every few 
hours/days or in certain rare conditions but not always, causing either 
deadlocks or other problematic behaviors. Fortunately, we also had 
failsafes to stop things in case the software would crash as it had 
safety implications.

Although I'm no longer working there and dealing much less with 
concurrency issues now, I'm still interested in the subject.

-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/




More information about the Digitalmars-d mailing list