[dmd-concurrency] draft 5
Andrei Alexandrescu
andrei at erdani.com
Tue Jan 19 23:08:23 PST 2010
I'm getting message from you that quote some other messages but have no
other content.
Andrei
Kevin Bealer wrote:
> On Wed, Jan 20, 2010 at 1:50 AM, Andrei Alexandrescu <andrei at erdani.com
> <mailto:andrei at erdani.com>> wrote:
>
> Sean Kelly wrote:
>
> void fnB() {
> // do something that takes a while
> }
> void fnA() {
> spawn( &fnB );
> }
>
> void main() {
> auto tid = spawn( &fnA );
> tid.wait();
> }
>
> The main thread doesn't know the thread running fnB exists so it
> can't wait for it, even if it's doing completely legitimate work
> and shouldn't be interrupted. How can I trivially rewrite this
> program so it completes without error?
>
>
> If fnB does legitimate work and doesn't call concurrency-related
> routines, it will be waited for.
>
> If fnB does call concurrency-related routines, it must end when
> main() exits. To me exiting main() is a no-quarters situation: it
> means the application is to exit asap. I find it weird to think of
> programs that finish main() but continue to do stuff.
>
> To make sure everything is accounted for, the application design
> must be such that main() doesn't exit until useful threads are done.
>
>
> Andrei
>
> _______________________________________________
> dmd-concurrency mailing list
> dmd-concurrency at puremagic.com <mailto:dmd-concurrency at puremagic.com>
> http://lists.puremagic.com/mailman/listinfo/dmd-concurrency
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> dmd-concurrency mailing list
> dmd-concurrency at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-concurrency
More information about the dmd-concurrency
mailing list