www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - RE: synchronized (this[.classinfo]) in druntime and phobos

reply Andrew Wiley <wiley.andrew.j gmail.com> writes:
*>From:* mta`chrono <chrono mta-international.net>
*Sent:* Sunday, June 3, 2012 14:38:31
*To:* digitalmars-d puremagic.com
*Subject:* Re: synchronized (this[.classinfo]) in druntime and phobos


Am 30.05.2012 11:11, schrieb deadalnix:
 D already have much better tools that the one java provide
 (std.concurency, std.parallelism, TLS by default, transitive type
 qualifiers, . . .) that most these thing taken from java don't make any
 sense now.

 For instance, what is the point of being able to lock on any object when
 most of them are thread local ??

Right! Locking on non-TLS objects doesn't make sense. Perhaps only shared objects should be synchronizeable and thus contain a monitor / pointer to a monitor.

auto thingy =3D new Thing(); auto sthingy =3D cast(shared)thingy; As long as we support casting to/from shared, you can=92t eliminate the monitor pointer in any object. Sent from my *Windows 8 PC* <http://windows.microsoft.com/consumer-preview>
Jun 03 2012
parent =?windows-1252?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
On 04-06-2012 00:00, Andrew Wiley wrote:
 *>From:* mta`chrono <chrono mta-international.net
 <mailto:chrono mta-international.net>>
  >*Sent:* Sunday, June 3, 2012 14:38:31
  >*To:* digitalmars-d puremagic.com <mailto:digitalmars-d puremagic.com>
  >*Subject:* Re: synchronized (this[.classinfo]) in druntime and phobos
  >
  >
  >Am 30.05.2012 11:11, schrieb deadalnix:
  >>
  >> D already have much better tools that the one java provide
  >> (std.concurency, std.parallelism, TLS by default, transitive type
  >> qualifiers, . . .) that most these thing taken from java don't make any
  >> sense now.
  >>
  >> For instance, what is the point of being able to lock on any object when
  >> most of them are thread local ??
  >
  > Right! Locking on non-TLS objects doesn't make sense. Perhaps only
  > shared objects should be synchronizeable and thus contain a monitor /
  > pointer to a monitor.
 auto thingy = new Thing();
 auto sthingy = cast(shared)thingy;
 As long as we support casting to/from shared, you can’t eliminate the
 monitor pointer in any object.
 Sent from my _Windows 8 PC_ <http://windows.microsoft.com/consumer-preview>

(And let me just add: As long as shared is as impractical as it is, we shouldn't remove that ability.) -- Alex Rønne Petersen alex lycus.org http://lycus.org
Jun 03 2012