I would wrap this in an `@synchronized(self)` - see my comment above