private void genCTask(ProcessSubcomponent ps, ThreadSubcomponent thread) {
    String threadName = thread.getComponentImplementation().getQualifiedName();
    threadName = GenerationUtilsC.getGenerationCIdentifier(threadName);
    _mainCCode.addOutputNewline("/*** Task " + threadName + " ***/");
    _mainCCode.addOutputNewline("extern void *" + threadName + "_Job(void);");
    _mainCCode.addOutputNewline("");

    _mainHCode.addOutputNewline("DeclareTask(" + thread.getName() + ");");
    _mainCCode.addOutputNewline("");

    _mainCCode.addOutputNewline("TASK(" + thread.getName() + ")");
    _mainCCode.addOutputNewline("{");
    _mainCCode.incrementIndent();

    _mainCCode.addOutputNewline(threadName + "_Job();");

    _mainCCode.decrementIndent();
    _mainCCode.addOutputNewline("}");
    _mainCCode.addOutputNewline("");
  }
 @Override
 protected String getGenerationIdentifier(String prefix) {
   return GenerationUtilsC.getGenerationCIdentifier(prefix);
 }
 @Override
 protected String getFeatureLocalIdentifier(FeatureInstance fi) {
   return GenerationUtilsC.getGenerationCIdentifier(
       fi.getComponentInstance().getName() + "_" + fi.getName());
 }