ImageDecoder can be deleted while the async decoder thread is still using it