* @brief Update resource usage statistics from child to parent process * * @param[in] child Child process containing resource usage data * @param[in] self_lwp Current lightweight process (parent) * @param[in,out] uru Pointer to user-space rusage structure to update * * @note This function: * - Copies system and user time from child process * - Only updates if uru pointer is not
| 1162 | * - Uses lwp_data_put to safely write to user-space memory |
| 1163 | */ |
| 1164 | rt_inline void _update_ru(struct rt_lwp *child, struct rt_lwp *self_lwp, struct rusage *uru) |
| 1165 | { |
| 1166 | struct rusage rt_rusage; |
| 1167 | if (uru != RT_NULL) |
| 1168 | { |
| 1169 | rt_rusage.ru_stime.tv_sec = child->rt_rusage.ru_stime.tv_sec; |
| 1170 | rt_rusage.ru_stime.tv_usec = child->rt_rusage.ru_stime.tv_usec; |
| 1171 | rt_rusage.ru_utime.tv_sec = child->rt_rusage.ru_utime.tv_sec; |
| 1172 | rt_rusage.ru_utime.tv_usec = child->rt_rusage.ru_utime.tv_usec; |
| 1173 | lwp_data_put(self_lwp, uru, &rt_rusage, sizeof(*uru)); |
| 1174 | } |
| 1175 | } |
| 1176 | |
| 1177 | /** |
| 1178 | * @brief Collects statistics and reaps a terminated child process |
no test coverage detected