Esempio n. 1
0
static void * myth_chpl_wrap(void * a_) {
  chpl_task_bundle_t * arg = myth_wsapi_get_hint_ptr(0);
  
  chpl_fn_int_t fid = arg->requested_fid;
  int32_t filename = arg->filename;
  int lineno = arg->lineno;
  chpl_taskID_t id = arg->id;
  chpl_bool is_executeOn = arg->is_executeOn;
  chpl_bool serial_state = arg->serial_state;
  
  if (serial_state) {
    chpl_task_setSerial(serial_state);
  }
  chpl_task_do_callbacks(chpl_task_cb_event_kind_begin,
                         fid,
                         filename,
                         lineno,
                         id,
                         is_executeOn);
  chpl_ftable[fid](arg);
  chpl_task_do_callbacks(chpl_task_cb_event_kind_end,
                         fid,
                         filename,
                         lineno,
                         id,
                         is_executeOn);
  return 0;
}
Esempio n. 2
0
static aligned_t spawn_wrapper(void *arg)
{
    spawn_wrapper_args_t * const rarg = arg;

    qthread_debug(CHAPEL_BEHAVIOR, "[%d] executing fn %d with arg-size %d\n", chpl_localeID, rarg->fid, rarg->arg_size);

    chpl_task_setSerial(rarg->serial_state);
    (*chpl_ftable[rarg->fid])(rarg->arg);

    return 0;
}