| 1265 | #endif |
| 1266 | |
| 1267 | rt_err_t lwp_thread_signal_mask(rt_thread_t thread, lwp_sig_mask_cmd_t how, |
| 1268 | const lwp_sigset_t *sigset, lwp_sigset_t *oset) |
| 1269 | { |
| 1270 | rt_err_t ret = -1; |
| 1271 | struct rt_lwp *lwp; |
| 1272 | |
| 1273 | if (thread) |
| 1274 | { |
| 1275 | lwp = (struct rt_lwp *)thread->lwp; |
| 1276 | LWP_LOCK(lwp); |
| 1277 | |
| 1278 | if (!lwp) |
| 1279 | { |
| 1280 | ret = -RT_EPERM; |
| 1281 | } |
| 1282 | else |
| 1283 | { |
| 1284 | ret = 0; |
| 1285 | _thread_signal_mask(thread, how, sigset, oset); |
| 1286 | } |
| 1287 | |
| 1288 | LWP_UNLOCK(lwp); |
| 1289 | } |
| 1290 | else |
| 1291 | ret = -RT_EINVAL; |
| 1292 | |
| 1293 | return ret; |
| 1294 | } |
| 1295 | |
| 1296 | static int _dequeue_signal(rt_thread_t thread, lwp_sigset_t *mask, siginfo_t *usi) |
| 1297 | { |
no test coverage detected