Implementing multithreading policy templates in D?
downs
default_357-line at yahoo.de
Sun Jun 8 08:38:29 PDT 2008
Brian Price wrote:
> downs Wrote:
>
>> Brian Price wrote:
>>> Greetings,
>>>
>>> While implementing a design I ran into a need for multiple implementations with different threading policies. It looked to me as if porting Loki's Threading Model policies over to D would be just the ticket. Unfortunately there's no mutex-like class in Phobos that I can find and Object's monitor is not exposed so no way to acquire/release on it other than through synchronized.
>>>
> <<---- snip ---- >>
>>> Having used about every 'mainstream' language over the past twenty odd years, I figure either I'm missing something huge and need to learn an entirely new approach or there's something missing from the standard library. So I'm left with three questions:
>>>
>>> Did I miss something in the docs/std lib code?
>>>
>>> Is there a way to implement flexible threading policies using synchronized statements?
>>>
>>> What are the chances we'll see Object sporting wait/notify methods or lock/unlock methods in a future release?
>>>
>>> Thanks,
>>> Brian
>> Scrapple.Tools.Threads implements the most important threading primitives on Win32 and Posix.
>>
>> http://dsource.org/projects/scrapple/browser/trunk/tools/tools/threads.d
>>
>> --downs
>
> Thanks, it looks good, does it compile & run under D 2.014?
>
No idea, I never tried - GDC 2.0 support is spotty.
> For the moment I'm using the simple hack:
> extern (C) void _d_monitorenter(Object obj);
> extern (C) void _d_monitorexit(Object obj);
> for a basic acquire/release mutex, but as my needs expand I want to avoid reinventing the wheel.
>
> I'd be a lot more comfortable though if the powers that be would expose those two functions as methods on Object.
>
Very much agreed.
> Brian
>
More information about the Digitalmars-d
mailing list