Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}