Hello,

I have a question concerning threading. I use Visual Studio with the Visual-D 
plugin. The problem is somehow that when executing the code below "Derived 
thread running." is displayed 3 times on the console but not before "return 0" 
is reached. Then "Derived thread running." is displayed 3x all of a sudden, but 
not each one by one after each other. This looks a bit strange to me.

When I unquote the Thread.sleeps after every d?.start() "Derived thread 
running." is displayed immediately on the console when stepping over 
Thread.sleep with the debugger. When stepping over d*.start() still nothing 
happens regardless how much time I wait in the debugger till I jump to the next 
line. I can't make really head or tail of this. I would expect "Derived thread 
running." to appear on the console somewhen after d?.start() was executed. 
Thereafter I could do an additional Thread.sleep if I wanted to. But this would 
not be necessary for any "Derived thread running." message to be displayed on 
the console. 

I believe there is something with the debugger I don't understand or don't 
realize. Any suggestions/ideas?

Thank you, Oliver Plow


import std.stdio, core.thread;

import DerivedThread;

int main(string[] argv)
{
    DerivedThread dt1 = new DerivedThread();    
    dt1.start();        
    // Thread.sleep(dur!("seconds")( 1 ));
        
    DerivedThread dt2 = new DerivedThread();    
    dt2.start();        
    // Thread.sleep(dur!("seconds")( 1 ));
        
    DerivedThread dt3 = new DerivedThread();    
    dt3.start();        
    // Thread.sleep(dur!("seconds")( 1 ));
        
    Thread.sleep(dur!("seconds")( 4 ));    
    return 0;
}

------------------ DerivedThread.d ------------------

import std.stdio, core.thread;

class DerivedThread : Thread { 
        this() { 
                super( &run ); 
        } 

private : 
        void run() { 
                writeln("Derived thread running."); 
        }
}
-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

Reply via email to