예제 #1
0
chpl_thread_id_t chpl_thread_getId(void) {
  void* val = (void*) (intptr_t) CHPL_TLS_GET(chpl_thread_id);

  if (val == NULL)
    return chpl_thread_nullThreadId;
  return (chpl_thread_id_t) (intptr_t) val;
}
예제 #2
0
// chpl_filenameTable is defined in chplcgfns.h
c_string chpl_lookupFilename(const int32_t idx) {
  if (idx < 0) {
    switch (idx) {
    case CHPL_FILE_IDX_COMMAND_LINE:
      return "(command-line)";
    case CHPL_FILE_IDX_COMMAND_LINE_ARG:
      return "<command-line arg>";
    case CHPL_FILE_IDX_FORK_LARGE:
      return "fork large";
    case CHPL_FILE_IDX_MAIN_PROGRAM:
      return "main program";
    case CHPL_FILE_IDX_UNKNOWN:
      return "<unknown>";
    case CHPL_FILE_IDX_IDLE_TASK:
      return "|idle|";
    case CHPL_FILE_IDX_COMM_TASK:
      return "<comm task>";
    case CHPL_FILE_IDX_MAIN_TASK:
      return "<main task>";
    case CHPL_FILE_IDX_ON_BODY_TASK:
      return "on-body task";
    case CHPL_FILE_IDX_SAVED_FILENAME:
      return savedFilename;
    default: {
      snprintf(CHPL_TLS_GET(unknownFileBuffer), 48,
               "<unknown file idx %" PRId32 ">", idx);
      // There is a possibility of unknownFileBuffer changing before it is
      // used, not a very good one though.
      return CHPL_TLS_GET(unknownFileBuffer);
    }
    }
  } else {
    if (idx < chpl_filenameTableSize) {
      return chpl_filenameTable[idx];
    } else {
      snprintf(CHPL_TLS_GET(unknownFileBuffer), 48,
               "<unknown file idx %" PRId32 ">", idx);
      return CHPL_TLS_GET(unknownFileBuffer);
    }
  }
}