On 2010-01-08 03:50:26 -0500, Walter Bright <[email protected]> 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
[email protected]
http://michelf.com/

Reply via email to