The DatabaseManager is synchronized. If any class is to communicate
with the db, it does that through the DatabaseManager. The latter just
provides proxy methods. I think, that should result in classes getting
the instance of the DatabaseManager only when it is no longer (or not
yet) used by other classes.
+ (DatabaseManager*)sharedManager {
@synchronized(self) {
if (sharedDatabaseManager == nil) {
[[self alloc] init]; // assignment not done here
}
}
return sharedDatabaseManager;
}
+ (id)allocWithZone:(NSZone *)zone {
@synchronized(self) {
if (sharedDatabaseManager == nil) {
sharedDatabaseManager = [super allocWithZone:zone];
[sharedDatabaseManager initDb];
return sharedDatabaseManager;
}
}
return nil;
}
On Apr 29, 2009, at 10:52 PM, Greg Guerin wrote:
Тимофей Даньшин wrote:
In short, i get an error calling the same synchronized singleton
DatabaseManager from different threads.
Are you sure your database accesses are synchronized (i.e. thread-
safe)? I see nothing in the posted code that uses @synchronized or
any other locking mechanism.
-- GG
_______________________________________________
Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/ok5.admin%40gmail.com
This email sent to ok5.ad...@gmail.com
_______________________________________________
Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to arch...@mail-archive.com