def multiWfs(scrns, wfsObj, dmShape, read, queue):
    """
    Function to run the WFS in multiprocessing mode.

    Function is called by each of the new WFS processes spawned to run each WFS. Does the same job as the sim runWfs_noMP method of running LGS, then getting slopes from each WFS.

    Args:
        scrns (list): list of the phase screens over the WFS
        wfsObj (WFS object): the WFS object being run
        dmShape (ndArray):  shape of system DMs for WFS phase correction
        queue (Queue object): a multiprocessing Queue object used to pass data back to host process.
    """
    slopes = wfsObj.frame(scrns, dmShape, read=read)
    if wfsObj.LGS:
        lgsPsf = wfsObj.LGS.psf1
    else:
        lgsPsf = None
    res = [slopes, wfsObj.wfsDetectorPlane, wfsObj.uncorrectedPhase, lgsPsf]
    queue.put(res)
