Поток, который был ранее соединен или отсоединен, снова соединяется или отсоединяется
Этот дефект возникает, когда:
Вы пытаетесь присоединиться к потоку, который был ранее присоединен или отсоединен.
Вы пытаетесь отсоединить поток, который был ранее присоединен или отсоединен.
Панель Result Details описывает, был ли поток ранее присоединен или отсоединен, а также показывает предыдущие связанные события.
Например, поток, соединенный с thrd_join затем отсоединяется с помощью thrd_detach:
thrd_t id; ... thrd_join(id, NULL); thrd_detach(id);
Обратите внимание, что поток рассматривается как соединенный только в том случае, если предыдущее соединение потоков успешно. Для образца поток не рассматривается как соединенный в if филиал здесь:
thrd_t t;
...
if (thrd_success != thrd_join(t, 0)) {
/* Thread not considered joined */
}thrd_current() функция.В C11 стандарте (пункты 7.26.5.3 и 7.26.5.6) указывается, что резьба не должна соединяться или отсоединяться после того, как она была ранее присоединена или отсоединена. Нарушение этих пунктов стандарта приводит к неопределенному поведению.
Избегайте присоединения потока, который уже был присоединен или отсоединен ранее. Избегайте отсоединения потока, который уже был соединен или отсоединен.
| Группа: Параллелизм |
| Язык: C |
| По умолчанию: Off |
Синтаксис командной строки
: DOUBLE_JOIN_OR_DETACH |
| Влияние: Средний |