[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: [Subclipse-dev] Syncinfo core rewritten

From: Mark Phippard <MarkP_at_softlanding.com>
Date: 2005-07-08 14:41:42 CEST

"Martin Letenay" <mle@whitestein.com> wrote on 07/08/2005 03:20:27 AM:

> These multithreaded things are really fun to debug.
> Smells like quantum physics - just observing it changes its behaviour
...
> (Like when I put some debug trace to stdout, the threads tend to
synchronize
> and no deadlocks appear ...)
>
> Anyway, the synchronized/deadlock problem seems to be caused by the
> SyncInfoSynchronizedAccessor#internalSetCachedSyncBytes method.
> It's calling a long running Synchronizer#setSyncInfo and then ...
> I think I was bit too paranoid putting the synchronized keyword there.
> Only methods which are accessing
> SyncInfoSynchronizedAccessor#pendingCacheWrites map should be
synchronized.
>
> So if you'll remove the synchronize keywords from
internalSetCachedSyncBytes
> and internalGetCachedSyncBytes of SyncInfoSynchronizedAccessor,
> the deadlocks should not occur anymore ...

It seems to be working pretty well now. I would like to commit it as is
and then start working from this version for further refinements. Would
you mind emailing me a good commit message for this? It is a pretty
massive change so we ought to document it well.

After I commit this, I would like to see you remove the deprecated bits. I
think you have made it possible to switch back to the old way in the
preferences. I do not think that is needed or even a very good idea.
Let's just make everyone use this and do our best to get it right. It
already seems to be working very good.

Finally, for my own understanding, the serializing of the cache to disk is
now removed. Is this because the new unified cache is already serialized
by Eclipse? I just do not want to lose that feature in general as it has
made a huge difference for me. I also got an exception when I closed my
runtime as it was trying to serialize the cache but couldn't because it
wasn't serializable. I am assuming that this is because of the mix of old
and new code.

I am not going to a new release until mid to late next week because of our
repository move. So we have the time to clean up these remaining bits. I
do not think the Synch functionality really needs to be touched now.

Thanks for all this. I will commit when I get a message from you.

Mark

_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. by IBM Email Security Management Services powered by MessageLabs.
_____________________________________________________________________________
Received on Fri Jul 8 22:41:42 2005

This is an archived mail posted to the Subclipse Dev mailing list.