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); }
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); }
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); }