@bradleywright in this instance, we are setting an instance variable (`@memory`) on the class itself, i.e. on the `RememberNotificationEndPoint` instance of class `Class`. In a threaded environment, the class instance will be shared across threads, and thus so will its instance variable. If this variable is changed in one thread, that will leak into the others, thus we wouldn't be able to guarantee integrity across parallel tests.

In general, class variables and class instance variables ([see here for a good writeup on those](http://www.railstips.org/blog/archives/2006/11/18/class-and-instance-variables-in-ruby/)) should be avoided if you plan on reading/writing from them regularly. For example, we can get away with using the `Whitehall` module for storing global configuration in class variables (using `mattr_accessor`) as, although they aren't thread-safe, they tend to get set on initialisation and never change.