Revision e360ce71 src/urt_node.c
| src/urt_node.c | ||
|---|---|---|
| 69 | 69 |
urtCoreSynchronizeNodes(((urt_node_t*)arg)); |
| 70 | 70 |
} |
| 71 | 71 |
|
| 72 |
while (!urtThreadShouldTerminate()) |
|
| 72 |
|
|
| 73 |
while (/*!*/urtThreadShouldTerminate()) //TODO: uncomment |
|
| 73 | 74 |
{
|
| 74 | 75 |
urt_osEventMask_t temp = urtEventWait(mask, URT_EVENT_WAIT_ONE, URT_DELAY_INFINITE); |
| 75 | 76 |
if (temp == urtCoreGetEventMask()) |
| ... | ... | |
| 90 | 91 |
((urt_node_t*)arg)->shutdowncallback(((urt_node_t*)arg), urtCoreGetStatus(), ((urt_node_t*)arg)->shutdownparams); |
| 91 | 92 |
} |
| 92 | 93 |
urtEventUnregister(urtCoreGetEvtSource(), &((urt_node_t*)arg)->listener); |
| 93 |
|
|
| 94 | 94 |
urt_osThread_t* threadToTerminate = ((urt_node_t*)arg)->thread; |
| 95 | 95 |
while (threadToTerminate->children != NULL || threadToTerminate->sibling != NULL) |
| 96 | 96 |
{
|
| ... | ... | |
| 109 | 109 |
if(threadToJoin->sibling != NULL) |
| 110 | 110 |
urtThreadJoin(threadToJoin->sibling); |
| 111 | 111 |
} |
| 112 |
urtThreadJoin(threadToJoin);
|
|
| 112 |
//urtThreadJoin(threadToJoin); //TODO: uncomment
|
|
| 113 | 113 |
|
| 114 | 114 |
return; |
| 115 | 115 |
} |
| ... | ... | |
| 146 | 146 |
urtDebugAssert(setupparams == NULL); |
| 147 | 147 |
|
| 148 | 148 |
node->next = NULL; |
| 149 |
urtPrintf("Test before threadInit in node\n");
|
|
| 150 |
urtThreadMSleep(10); |
|
| 151 | 149 |
node->thread = urtThreadInit((void*)thread, sizeof(thread), prio, (urt_osThreadFunction_t) _main, (void*)node); |
| 152 |
urtPrintf("Test after threadInit in node\n");
|
|
| 153 |
urtThreadMSleep(10); |
|
| 154 | 150 |
node->setupcallback = setupcallback; |
| 155 | 151 |
node->setupparams = setupparams; |
| 156 | 152 |
node->loopcallback = loopcallback; |
| ... | ... | |
| 165 | 161 |
urt_osMutex_t* mutexTemp = urtCoreGetMutex(); |
| 166 | 162 |
urtMutexLock(mutexTemp); |
| 167 | 163 |
node->next = urtCoreGetNodes(); |
| 168 |
urt_node_t* nodeCore = urtCoreGetNodes(); |
|
| 169 |
nodeCore->next = node; |
|
| 164 |
urtCoreSetNodes(node); |
|
| 170 | 165 |
urtMutexUnlock(mutexTemp); |
| 171 | 166 |
return; |
| 172 | 167 |
} |
Also available in: Unified diff