Decided to use synchronisation blocks instead of queueEvent. Seems like
the latter gives less control over the order in which things happen.
Synching should now be in place for all writes and reads of the collections
which the renderer needs to iterate across.