make it safe to call disconnect multiple times

If for some reason disconnect is called multiple times, don't throw an exception