def get_recover_position(gzfile, last_good_position):
    # type: (gzip.GzipFile, int) -> int
    """
    Return position of a next gzip stream in a GzipFile, 
    or -1 if it is not found.
    
    XXX: caller must ensure that the same last_good_position
    is not used multiple times for the same gzfile.
    """
    with closing(mmap.mmap(gzfile.fileno(), 0, access=mmap.ACCESS_READ)) as m:
        return m.find(GZIP_SIGNATURE, last_good_position + 1)