localFileFieldsSet or isLocalFile is never used on a secondary thread ATM.
Christiaan On 2 Jan 2008, at 9:49 PM, Adam R. Maxwell wrote: > The @synchronized in the singleton setup is just to prevent a race > condition when it's first created. I think only the accessors that > are used from another thread have to be @synchronized, in > conjunction with the methods that modify the variables used from > multiple threads. localFileFieldsSet has an @synchronized in it > for the file content indexing, but I just realized that's no longer > used. We may be able to get rid of all the locks. > > On Wednesday, January 02, 2008, at 12:37PM, "Christiaan Hofman" > <[EMAIL PROTECTED]> wrote: >> But is this safe for accessing the ivars? While the ivar is read, I >> don't see why at the same time some other thread could change them, >> as the read-code is not inside a @synchronized block. (if I >> understand @synchronized correctly). >> >> Christiaan >> >> On 2 Jan 2008, at 9:29 PM, [EMAIL PROTECTED] wrote: >> >>> Revision: 12203 >>> http://bibdesk.svn.sourceforge.net/bibdesk/? >>> rev=12203&view=rev >>> Author: amaxwell >>> Date: 2008-01-02 12:29:48 -0800 (Wed, 02 Jan 2008) >>> >>> Log Message: >>> ----------- >>> create type manager in +initialize to get rid of @synchronized >>> >>> Modified Paths: >>> -------------- >>> trunk/bibdesk/BDSKTypeManager.m >>> >>> Modified: trunk/bibdesk/BDSKTypeManager.m >>> =================================================================== >>> --- trunk/bibdesk/BDSKTypeManager.m 2008-01-02 20:29:24 UTC (rev >>> 12202) >>> +++ trunk/bibdesk/BDSKTypeManager.m 2008-01-02 20:29:48 UTC (rev >>> 12203) >>> @@ -44,16 +44,19 @@ >>> >>> static BDSKTypeManager *sharedInstance = nil; >>> >>> -// note: if calling this in a loop, @synchronized() can be very >>> expensive, so call it before entering the loop >>> @implementation BDSKTypeManager >>> + (BDSKTypeManager *)sharedManager{ >>> - @synchronized(sharedInstance){ >>> - if(sharedInstance == nil) >>> - sharedInstance = [[BDSKTypeManager alloc] init]; >>> - } >>> return sharedInstance; >>> } >>> >>> ++ (void)initialize >>> +{ >>> + OBINITIALIZE; >>> + // Create the singleton here since +initialize is thread safe; >>> @synchronized in +sharedManager was killing performance, especially >>> with the NSString category methods. >>> + if(sharedInstance == nil) >>> + sharedInstance = [[self alloc] init]; >>> +} >>> + >>> - (id)init{ >>> self = [super init]; >>> >>> >>> >>> This was sent by the SourceForge.net collaborative development >>> platform, the world's largest Open Source development site. >> >> >> >> --------------------------------------------------------------------- >> ---- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> Bibdesk-develop mailing list >> Bibdesk-develop@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop >> >> > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Bibdesk-develop mailing list > Bibdesk-develop@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bibdesk-develop ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Bibdesk-develop mailing list Bibdesk-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-develop