async def METHOD_NAME(self,
                          x,
                          img_metas,
                          det_bboxes,
                          det_labels,
                          rescale=False,
                          mask_test_cfg=None):
    """Asynchronized test for mask head without augmentation."""
    # image shape of the first image in the batch (only one)
    ori_shape = img_metas[0]['ori_shape']
    scale_factor = img_metas[0]['scale_factor']
    if det_bboxes.shape[0] == 0:
        segm_result = [[] for _ in range(self.mask_head.num_classes)]
    else:
        if rescale and not isinstance(scale_factor,
                                      (float, torch.Tensor)):
            scale_factor = det_bboxes.new_tensor(scale_factor)
        _bboxes = (
            det_bboxes[:, :4] *
            scale_factor if rescale else det_bboxes)
        mask_rois = bbox2roi([_bboxes])
        mask_feats = self.mask_roi_extractor(
            x[:len(self.mask_roi_extractor.featmap_strides)],
            mask_rois)
        if self.with_shared_head:
            mask_feats = self.shared_head(mask_feats)
        if mask_test_cfg and \
                mask_test_cfg.get('async_sleep_interval'):
            sleep_interval = mask_test_cfg['async_sleep_interval']
        else:
            sleep_interval = 0.035
        async with completed(
                __name__,
                'mask_head_forward',
                sleep_interval=sleep_interval):
            mask_pred = self.mask_head(mask_feats)
        segm_result = self.mask_head.get_results(
            mask_pred, _bboxes, det_labels, self.test_cfg, ori_shape,
            scale_factor, rescale)
    return segm_result