Revision e360ce71 src/urt_core.c
| src/urt_core.c | ||
|---|---|---|
| 117 | 117 |
return &core._evtSource; |
| 118 | 118 |
} |
| 119 | 119 |
|
| 120 |
|
|
| 121 |
/** |
|
| 122 |
* @brief Get Core nodes. |
|
| 123 |
* |
|
| 124 |
* @return Nodes registered to the core. |
|
| 125 |
*/ |
|
| 120 | 126 |
urt_node_t* urtCoreGetNodes(void) |
| 121 | 127 |
{
|
| 122 | 128 |
return core._nodes; |
| 123 | 129 |
} |
| 124 | 130 |
|
| 131 |
void urtCoreSetNodes(urt_node_t* node) |
|
| 132 |
{
|
|
| 133 |
core._nodes = node; |
|
| 134 |
return; |
|
| 135 |
} |
|
| 136 |
|
|
| 125 | 137 |
/** |
| 126 | 138 |
* @brief Start threads of all nodes of the Core. |
| 127 | 139 |
*/ |
| ... | ... | |
| 133 | 145 |
{
|
| 134 | 146 |
urtThreadStart(node->thread); |
| 135 | 147 |
node = node->next; |
| 148 |
urtThreadMSleep(100); //TODO: delete |
|
| 136 | 149 |
} |
| 137 | 150 |
urtMutexUnlock(&core._lock); |
| 138 | 151 |
return; |
| ... | ... | |
| 153 | 166 |
urtDebugAssert(node != NULL); |
| 154 | 167 |
|
| 155 | 168 |
urtMutexLock(&core._lock); |
| 156 |
node->stage -= 1;
|
|
| 169 |
node->stage++;
|
|
| 157 | 170 |
urt_node_t* nodeFromCore = core._nodes; |
| 158 | 171 |
while (nodeFromCore && nodeFromCore->stage == node->stage) |
| 159 | 172 |
{
|
| 160 | 173 |
nodeFromCore = nodeFromCore->next; |
| 161 | 174 |
} |
| 162 |
if (nodeFromCore) |
|
| 175 |
|
|
| 176 |
if (!nodeFromCore) |
|
| 163 | 177 |
{
|
| 164 | 178 |
urt_osEventFlags_t flag = URT_EVENTFLAG_PROCEED; |
| 165 | 179 |
urtEventSourceBroadcast(&core._evtSource, flag); |
Also available in: Unified diff