| 250 | } |
| 251 | |
| 252 | static void sigqueue_enqueue(lwp_sigqueue_t sigqueue, lwp_siginfo_t siginfo) |
| 253 | { |
| 254 | lwp_siginfo_t idx; |
| 255 | rt_bool_t inserted = RT_FALSE; |
| 256 | rt_list_for_each_entry(idx, &sigqueue->siginfo_list, node) |
| 257 | { |
| 258 | if (idx->ksiginfo.signo >= siginfo->ksiginfo.signo) |
| 259 | { |
| 260 | rt_list_insert_after(&idx->node, &siginfo->node); |
| 261 | inserted = RT_TRUE; |
| 262 | break; |
| 263 | } |
| 264 | } |
| 265 | |
| 266 | if (!inserted) |
| 267 | rt_list_insert_before(&sigqueue->siginfo_list, &siginfo->node); |
| 268 | |
| 269 | _sigaddset(&sigqueue->sigset_pending, siginfo->ksiginfo.signo); |
| 270 | return ; |
| 271 | } |
| 272 | |
| 273 | /** |
| 274 | * dequeue a siginfo matching the signo which is likely to be existed, and |
no test coverage detected