def METHOD_NAME(function, needed):
    to_check = []
    exclusions = []
    python_exclusions = [
        'python-pyexiftool', 'python2-pyexiftool', 'python2-cement',
        'python2-nmap', 'python2-pynfc', 'python-cement', 'python2-slugify',
        'python-tinyec', 'python2-z3', 'python-libevtx-python', 'pkg',
        'python2-libevtx-python', 'python2.7', 'python2-qdarkstyle',
        'python-efilter', 'python-libnum', 'python-slackclient',
        'python-telethon', 'python-twilio', 'python-python-pushover',
        'python2-utils', 'python2-geoip', 'python2-smmap', 'python2-gitdb',
        'python-requests-html', 'python2-openpyxl', 'python-pycrtsh',
        'python-pyric', 'python-mmbot', 'python2-scikit-image', 'python-exiv2',
        'python2-pytsk3', 'python2-pywavelets', 'python2-pyxml',
        'python-spyonweb', 'python-pythreatgrid2', 'python-exscript',
        'python-readchar', 'python-xgoogle', 'python-rpyc', 'python-pypermacc',
        'python-pyv8', 'python-pype32', 'python-stix', 'python-slowaes',
        'python-pdfminer3k', 'python-pypugjs', 'python-bacpypes',
        'python-taxii2-client', 'python2-taxii2-client', 'python2-pyshark',
        'python-can', 'python2-pdfminer', 'python2-blinker', 'python2-daemon',
        'python2-itsdangerous', 'python2-subprocess32', 'python2-werkzeug',
        'python2-py3270', 'python-coveralls', 'python-singlefile',
        'python-arsenic', 'python-cx_oracle', 'python-selenium',
    ]
    ruby_exclusions = []
    if needed == 'python':
        exclusions = python_exclusions
    elif needed == 'ruby':
        exclusions = ruby_exclusions
    for root, dirs, files in os.walk('../packages/'):
        for dir in dirs:
            if needed in dir and dir not in exclusions:
                to_check.append(dir)
    with ThreadPoolExecutor(5) as executor:
        for _ in executor.map(function, to_check):
            pass