It seems logical that Thread objects should be constructed with delegates marked "shared," but there's no way to do this right now: --- import core.thread; class A { void doSomethingMultithreaded () shared { // blah blah } } void main () { auto a = new shared(A)(); auto t = new Thread(&a.doSomethingMultithreaded); t.start(); } --- Even in lieu of making it mandatory, an overloaded constructor making use of this would be helpful.
Just noticed this newsgroup post too: http://www.digitalmars.com/d/archives/digitalmars/D/Concurrency_architecture_for_D2_104120.html#N104479 Which I guess makes this whole report moot.