First big PITA in reallife D project
Steven Schveighoffer
schveiguy at yahoo.com
Tue Oct 19 10:13:50 PDT 2010
On Tue, 19 Oct 2010 12:07:04 -0400, FeepingCreature
<default_357-line at yahoo.de> wrote:
> On 19.10.2010 13:33, Stephan wrote:
>> BUT it wont work like that. AFTER i stopped all other threads some
>> strange behavior of druntime makes every creation of an InternetAddress
>> instance (internally trying to resolve host) impossible (throws an
>> exception). Additionally even if the Internet Addresses were created
>> upfront the TcpSockets wont connect but throw.
>
> Terminating threads has always been iffy in D. As a simple workaround,
> use a threadpool to keep a set of threads around blocking on a semaphore
> (and consuming no resources), and rewrite your problem in terms of tasks
> (void delegate()).
>
> I'm sorry you had such a bad experience with this. There really should
> be a list of common D pitfalls, and "Don't ever destroy threads" should
> be among the top ten.
This one was a simple bug. He was not terminating threads, rather he was
letting a thread exit normally.
-Steve
More information about the Digitalmars-d
mailing list