if (RF_CREATE_THREAD(raidPtr->engine_thread, DAGExecutionThread, raidPtr)) {
if (RF_CREATE_THREAD(raidPtr->engine_thread, DAGExecutionThread, raidPtr,"raid")) {
rf_ConfigureEngine(    RF_ShutdownList_t ** listp,    RF_Raid_t * raidPtr,    RF_Config_t * cfgPtr){	int     rc, tid = 0;	if (rf_engineDebug) {		rf_get_threadid(tid);	}	DO_INIT(listp, raidPtr);	raidPtr->node_queue = NULL;	raidPtr->dags_in_flight = 0;	rc = rf_init_managed_threadgroup(listp, &raidPtr->engine_tg);	if (rc)		return (rc);	/* we create the execution thread only once per system boot. no need	 * to check return code b/c the kernel panics if it can't create the	 * thread. */	if (rf_engineDebug) {		printf("[%d] Creating engine thread\n", tid);	}	if (RF_CREATE_THREAD(raidPtr->engine_thread, DAGExecutionThread, raidPtr)) {		RF_ERRORMSG("RAIDFRAME: Unable to create engine thread\n");		return (ENOMEM);	}	if (rf_engineDebug) {		printf("[%d] Created engine thread\n", tid);	}	RF_THREADGROUP_STARTED(&raidPtr->engine_tg);	/* XXX something is missing here... */#ifdef debug	printf("Skipping the WAIT_START!!\n");#endif#if 0	RF_THREADGROUP_WAIT_START(&raidPtr->engine_tg);#endif	/* engine thread is now running and waiting for work */	if (rf_engineDebug) {		printf("[%d] Engine thread running and waiting for events\n", tid);	}	rc = rf_ShutdownCreate(listp, rf_ShutdownEngine, raidPtr);	if (rc) {		RF_ERRORMSG3("Unable to add to shutdown list file %s line %d rc=%d\n", __FILE__,		    __LINE__, rc);		rf_ShutdownEngine(NULL);	}	return (rc);}