From: David ‘Bombe’ Roden Date: Fri, 29 Oct 2010 04:16:35 +0000 (+0200) Subject: Add lots of synchronization. X-Git-Tag: 0.1-RC2~1 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=df1e2e70c2f7031cd5b175d58b8f0b70c672176b Add lots of synchronization. --- diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index ab98316..99ebc6d 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -102,13 +102,13 @@ public class Core extends AbstractService { private SoneDownloader soneDownloader; /** The Sone blacklist. */ - private final Set blacklistedSones = new HashSet(); + private final Set blacklistedSones = Collections.synchronizedSet(new HashSet()); /** The local Sones. */ - private final Set localSones = new HashSet(); + private final Set localSones = Collections.synchronizedSet(new HashSet()); /** Sone inserters. */ - private final Map soneInserters = new HashMap(); + private final Map soneInserters = Collections.synchronizedMap(new HashMap()); /** The Sones’ statuses. */ private final Map soneStatuses = Collections.synchronizedMap(new HashMap()); @@ -116,13 +116,13 @@ public class Core extends AbstractService { /* various caches follow here. */ /** Cache for all known Sones. */ - private final Map soneCache = new HashMap(); + private final Map soneCache = Collections.synchronizedMap(new HashMap()); /** Cache for all known posts. */ - private final Map postCache = new HashMap(); + private final Map postCache = Collections.synchronizedMap(new HashMap()); /** Cache for all known replies. */ - private final Map replyCache = new HashMap(); + private final Map replyCache = Collections.synchronizedMap(new HashMap()); /** * Creates a new core. diff --git a/src/main/java/net/pterodactylus/sone/data/Post.java b/src/main/java/net/pterodactylus/sone/data/Post.java index d0938c9..c30665a 100644 --- a/src/main/java/net/pterodactylus/sone/data/Post.java +++ b/src/main/java/net/pterodactylus/sone/data/Post.java @@ -31,13 +31,13 @@ public class Post { private final UUID id; /** The Sone this post belongs to. */ - private Sone sone; + private volatile Sone sone; /** The time of the post (in milliseconds since Jan 1, 1970 UTC). */ - private long time; + private volatile long time; /** The text of the post. */ - private String text; + private volatile String text; /** * Creates a new post. diff --git a/src/main/java/net/pterodactylus/sone/data/Profile.java b/src/main/java/net/pterodactylus/sone/data/Profile.java index 72901b3..7c29430 100644 --- a/src/main/java/net/pterodactylus/sone/data/Profile.java +++ b/src/main/java/net/pterodactylus/sone/data/Profile.java @@ -26,25 +26,25 @@ package net.pterodactylus.sone.data; public class Profile { /** Whether the profile was modified. */ - private boolean modified; + private volatile boolean modified; /** The first name. */ - private String firstName; + private volatile String firstName; /** The middle name(s). */ - private String middleName; + private volatile String middleName; /** The last name. */ - private String lastName; + private volatile String lastName; /** The day of the birth date. */ - private Integer birthDay; + private volatile Integer birthDay; /** The month of the birth date. */ - private Integer birthMonth; + private volatile Integer birthMonth; /** The year of the birth date. */ - private Integer birthYear; + private volatile Integer birthYear; /** * Creates a new empty profile. diff --git a/src/main/java/net/pterodactylus/sone/data/Reply.java b/src/main/java/net/pterodactylus/sone/data/Reply.java index 4429abf..05d8049 100644 --- a/src/main/java/net/pterodactylus/sone/data/Reply.java +++ b/src/main/java/net/pterodactylus/sone/data/Reply.java @@ -31,16 +31,16 @@ public class Reply { private final UUID id; /** The Sone that posted this reply. */ - private Sone sone; + private volatile Sone sone; /** The Post this reply refers to. */ - private Post post; + private volatile Post post; /** The time of the reply. */ - private long time; + private volatile long time; /** The text of the reply. */ - private String text; + private volatile String text; /** * Creates a new reply. diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java index f6d5181..129293c 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -49,38 +49,38 @@ public class Sone { private final UUID id; /** The name of this Sone. */ - private String name; + private volatile String name; /** The URI under which the Sone is stored in Freenet. */ - private FreenetURI requestUri; + private volatile FreenetURI requestUri; /** The URI used to insert a new version of this Sone. */ /* This will be null for remote Sones! */ - private FreenetURI insertUri; + private volatile FreenetURI insertUri; /** The time of the last inserted update. */ - private long time; + private volatile long time; /** The profile of this Sone. */ - private Profile profile; + private volatile Profile profile; /** All friend Sones. */ - private final Set friendSones = new HashSet(); + private final Set friendSones = Collections.synchronizedSet(new HashSet()); /** All posts. */ - private final Set posts = new HashSet(); + private final Set posts = Collections.synchronizedSet(new HashSet()); /** All replies. */ - private final Set replies = new HashSet(); + private final Set replies = Collections.synchronizedSet(new HashSet()); /** The IDs of all blocked Sones. */ - private final Set blockedSoneIds = new HashSet(); + private final Set blockedSoneIds = Collections.synchronizedSet(new HashSet()); /** The IDs of all liked posts. */ - private final Set likedPostIds = new HashSet(); + private final Set likedPostIds = Collections.synchronizedSet(new HashSet()); /** The IDs of all liked replies. */ - private final Set likedReplyIds = new HashSet(); + private final Set likedReplyIds = Collections.synchronizedSet(new HashSet()); /** Modification count. */ private volatile long modificationCounter = 0;