digitalmars.D.learn - threads
- rko (65/65) Jul 05 2005 Can someone point me in the right direction please?
- Ben Hinkle (4/9) Jul 05 2005 when is listenerthread.start() called? I didn't see anything glancing
- rko (4/13) Jul 05 2005 thanx that you even answered. when i came home i saw that too. shame is ...
- Jarrett Billingsley (3/5) Jul 05 2005 That's one of the more .. original expressions I've heard ;)
- pragma (3/8) Jul 06 2005 I'll say. Perhaps he meant to say "I'm all wet."
Can someone point me in the right direction please?
I have a class with several methods. one of those methods should be called as a
with new thread and do something untill the class is destroyed.
here is a test class that i experiment with:
class serverinit
{
private:
Socket listener;
ushort port;
Thread listenerthread;
int (*fp)(void *);
initdata data;
public:
Socket listenerdata() { return listener; } // read property
Socket listenerdata(Socket value) { return listener = value; } // write property
ushort portdata() { return port; } // read property
ushort portdata(ushort value) { return port = value; } // write property
Thread listenerthreaddata() { return listenerthread; } // read property
Thread listenerthreaddata(Thread value) { return listenerthread = value; } //
write property
static int serverinitializer(void *dataorg)
{
Socket reciever;
initdata *data = cast(initdata *)dataorg;
for(;;)
{
try {
reciever = data.listener.accept();
assert(reciever.isAlive);
Thread newthread = new Thread(data.fp, reciever);
newthread.start();
}
catch {
if(reciever)
reciever.close();
}
}
return 0;
}
this(int (*fp)(void *),ushort onport)
{
assert(fp != null);
this.fp = fp;
port = onport;
data.fp = fp;
listener = new TcpSocket;
assert(listener.isAlive);
data.listener = listener;
listener.blocking = false;
listener.bind(new InternetAddress(port));
listener.listen(10);
listenerthread = new Thread(&serverinitializer, &data); // XXXXX
assert(listenerthread != null);
}
~this()
{
listener.close();
listenerthread.pause();
delete listenerthread;
}
}
with a debugger, i can see that the line XXXXX is executed, but the function
will not listen. when i don't use the data-initdata construct, i can not
compile, since this is not allowed in a static method.
richard
Jul 05 2005
when is listenerthread.start() called? I didn't see anything glancing through the code. "rko" <rko_member pathlink.com> wrote in message news:dade2h$2m9u$1 digitaldaemon.com...Can someone point me in the right direction please? I have a class with several methods. one of those methods should be called as a with new thread and do something untill the class is destroyed. here is a test class that i experiment with:
Jul 05 2005
In article <daec9m$ddq$1 digitaldaemon.com>, Ben Hinkle says...when is listenerthread.start() called? I didn't see anything glancing through the code. "rko" <rko_member pathlink.com> wrote in message news:dade2h$2m9u$1 digitaldaemon.com...thanx that you even answered. when i came home i saw that too. shame is dripping from me. richardCan someone point me in the right direction please? I have a class with several methods. one of those methods should be called as a with new thread and do something untill the class is destroyed. here is a test class that i experiment with:
Jul 05 2005
"rko" <rko_member pathlink.com> wrote in message news:daehai$hqb$1 digitaldaemon.com...shame is dripping from me.That's one of the more .. original expressions I've heard ;)
Jul 05 2005
In article <daf6na$13c5$1 digitaldaemon.com>, Jarrett Billingsley says..."rko" <rko_member pathlink.com> wrote in message news:daehai$hqb$1 digitaldaemon.com...I'll say. Perhaps he meant to say "I'm all wet." - EricAnderton at yahooshame is dripping from me.That's one of the more .. original expressions I've heard ;)
Jul 06 2005








pragma <pragma_member pathlink.com>