Sweeper code isn't thread-safe.

Sweeper is a singleton so its @controller variable may be changed or nullified by a different thread before the before_create method is called on an audit instance. 
It results in an audit with wrong user and remote_address being created.