Any reason to `broadcast` here instead of `signal`? Also we should probably just put a `return unless instance` guard at the top since we don't want to even lock if there's no instance right?