std.concurrency: Returning from spawned function
Sean Kelly
sean at invisibleduck.org
Fri Sep 10 21:52:22 PDT 2010
dsimcha Wrote:
> I was thinking about ways to improve std.concurrency w/o compromising its
> safety or the simplicity of what already works. Isn't it unnecessarily
> restrictive that a spawned function must return void? Since the spawned
> thread dies when the spawned function returns, the return value could safely
> be moved to the owner thread. Therefore, the return values wouldn't even have
> to be immutable/shared/lacking indirection. The return value could, for
> example, be stored in Tid, with attempts to retrieve it blocking until the
> spawned thread returns.
That each spawn() results in the creation of a thread whose lifetime ends when the function returns is an implementation details. It could as easily be a thread pool that resets its TLS data when picking up a new operation, user-space thread, etc. In short, I don't think that the behavior of a thread exiting should be a motivating factor for design changes. Does this gain anything over sending a message on exit?
More information about the Digitalmars-d
mailing list