On Mon, 07 Feb 2011 08:20:20 -0500, Steven Schveighoffer <schvei...@yahoo.com> wrote:

On Fri, 04 Feb 2011 18:29:08 -0500, Sean Kelly <s...@invisibleduck.org> wrote:

On Feb 4, 2011, at 3:06 PM, Tomek Sowiński wrote:

Steven Schveighoffer napisał:

D also allows you to replace it's monitor with a custom monitor object
(i.e. core.sync.Mutex) so you can have more control over the mutex, assign the same mutex to multiple objects, use conditions, etc. It's much more
flexible than Java or C# IMO.

I didn't know, thx. Where is it documented?

Only in the docs for the Mutex ctor here:

http://www.digitalmars.com/d/2.0/phobos/core_sync_mutex.html

By the way, when using Mutex as an object monitor you currently can't attach dispose event handlers to the object (ie. via std.signals). That functionality is only supported by the default monitor. I've considered changing this, but doing so imposes some weird requirements on the creators of an external object monitor, like Mutex.

Sean, I could have sworn that mutex can take over multiple objects' monitors. This would be highly desirable in a complex structure where members of an object should use the same mutex for synchronized calls.

But looking at the docs once again, it looks like it can only be the monitor for one object (as the target object is accepted only on construction). Is that a limitation we cannot remove?

-Steve

Steve, you can always assign to an object's monitor variable manually. But adding this functionality to Mutex's and Object's API would be appreciated.

Reply via email to