Thread pause and resume

Steve Teale steve.teale at britseyeview.com
Mon Apr 6 11:49:50 PDT 2009


Steve Teale Wrote:

> Sean Kelly Wrote:
> 
> > == Quote from Steve Teale (steve.teale at britseyeview.com)'s article
> > >
> > > In some code I wrote at that time, I had a worker thread pool. When a thread had done its job it would mark itself as available then
> > pause. The listener thread would then resume it or start one that had never been started. I'm trying to get it running in 2.26. There
> > are functions of the same name there but they are nested inside SuspendAll and ResumeAll, and so not accessible.
> > 
> > This sounds like a classic producer/consumer case.  I suggest using condition
> > variables (core.sync.condition with core.sync.mutex).
> 
> The problem is at the moment, that the D documentation covers the language, and Phobos - the latter option exposes Object to some extent.
> 
> Anything that is in core.* is undocumented and you have to 'rtfsc' - if you can find it. I can't even find "core.sync" in D files under dmd. Can you point me in the right direction please.
> 
> Thanks Steve
> 
As an aside, I realize that Thread.suspend is dodgy, it's been deprecated in Java and C#. Can the metaprogrammers out there come up with a way to insist that a particular member function is called only from the instance that it 'belongs' to. Then presumably it could be made safe.




More information about the Digitalmars-d mailing list