[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