For correct adjusting: what happens if you call this when fire is going to be called soon and it has already been scheduled, etc.

I believe if you need to do that in particular, you could also do

```objc
dispatch_after(queue, 0.5, ^{
    [self.timer fire];
});
```