<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def autodiscover_modules(packages, related_name_re='.+', ignore_exceptions=False):
 """Autodiscover function follows the pattern used by Celery. :param packages: List of package names to auto discover modules in. :type packages: list of str :param related_name_re: Regular expression used to match modules names. :type related_name_re: str :param ignore_exceptions: Ignore exception when importing modules. :type ignore_exceptions: bool """

    warnings.warn('autodiscover_modules has been deprecated. '
                  'Use Flask-Registry instead.', DeprecationWarning)
    global _RACE_PROTECTION

    if _RACE_PROTECTION:
        return []
    _RACE_PROTECTION = True
    modules = []
    try:
        tmp = [find_related_modules(pkg, related_name_re, ignore_exceptions)
               for pkg in packages]

        for l in tmp:
            for m in l:
                if m is not None:
                    modules.append(m)
    # Workaround for finally-statement
    except:
        _RACE_PROTECTION = False
        raise
    _RACE_PROTECTION = False
    return modules