> What we could do is replace @Immutable, @ThreadSafe and @NonThreadSafe
> with a single annotation, say, @Threading with three values Safe,
> NonSafe and Immutable and drop @GuardedBy altogether.
That looks like a good alternative though it makes me wonder
how is this better for you then plain comments? Do you run the package under a
tool that can detected synchronization issues at run-time? Static code analysis
would be quite limited in finding races.. especially in this project.
Anyway I think there is definitely room for group discussion, maybe Unsafe
instead of NonSafe
or @Threading.Synchronized /
Unsynchronized
But I would remove the annotations and CC license anomaly
first and use simple comments instead.