Exemple #1
0
void chpl_task_taskCall(chpl_fn_p fp, void* arg, size_t arg_size,
                        c_sublocid_t subloc,
                        int lineno, int32_t filename) {
  void *arg_copy = NULL;

  if (arg != NULL) {
    arg_copy = chpl_mem_allocMany(1, arg_size, CHPL_RT_MD_TASK_ARG, 0, 0);
    chpl_memcpy(arg_copy, arg, arg_size);
  }
  taskCallBody(fp, NULL, arg_copy, subloc, false, lineno, filename);
}
Exemple #2
0
void chpl_task_startMovedTask(chpl_fn_p fp,
                              void* arg,
                              c_sublocid_t subloc,
                              chpl_taskID_t id,
                              chpl_bool serial_state) {
  //
  // For now the incoming task ID is simply dropped, though we check
  // to make sure the caller wasn't expecting us to do otherwise.  If
  // we someday make task IDs global we will need to be able to set
  // the ID of this moved task.
  //
  assert(id == chpl_nullTaskID);

  taskCallBody(fp, arg, NULL, subloc, serial_state, 0, CHPL_FILE_IDX_UNKNOWN);
}
Exemple #3
0
void chpl_task_taskCallFTable(chpl_fn_int_t fid,
                        chpl_task_bundle_t* arg, size_t arg_size,
                        c_sublocid_t subloc,
                        int lineno, int32_t filename) {
  taskCallBody(fid, chpl_ftable[fid], arg, arg_size, subloc, false, lineno, filename);
}