void chpl_comm_execute_on_nb(c_nodeid_t node, c_sublocid_t subloc, chpl_fn_int_t fid, chpl_comm_on_bundle_t *arg, size_t arg_size) { assert(node==0); chpl_task_startMovedTask(fid, chpl_ftable[fid], chpl_comm_on_bundle_task_bundle(arg), arg_size, subloc, chpl_nullTaskID, false); }
void chpl_comm_fork_nb(c_nodeid_t node, c_sublocid_t subloc, chpl_fn_int_t fid, void *arg, int32_t arg_size) { fork_t *info; int info_size; assert(node==0); info_size = sizeof(fork_t) + arg_size; info = (fork_t*)chpl_mem_allocMany(info_size, sizeof(char), CHPL_RT_MD_COMM_FORK_SEND_NB_INFO, 0, 0); info->fid = fid; info->arg_size = arg_size; if (arg_size) memcpy(&(info->arg), arg, arg_size); chpl_task_startMovedTask((chpl_fn_p)fork_nb_wrapper, (void*)info, subloc, chpl_nullTaskID, false); }