LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

у вас логикой все нормально? если вы защищаете деструктор пула мьютексом, значит в вашей системе, во время деструкции пула может кто-то к нему обращаться. а раз может «во время», значит может и после деструкции обращаться, а это уже ошибка совсем.

обращение во время деструкции надо оформлять паникой или эксепшеном. и смотреть откуда оно берется вообще, ибо такого быть не может в корректной программе.

в правильной логике сначала стопят всех, кто может лезть в обьект, и потом убивают обьект.

то есть тредпул должен иметь функцию stop_all(), где он переводится в неактивное состояние и не может далее добавлять треды, и в ней он ожидает завершения всех его тредов.

но тредпул должен быть недеструктрурирован, пока есть ненормальные, что могут вызвать его функции.

Исправление alysnix, :

у вас логикой все нормально? если вы защищаете деструктор пула мьютексом, значит в вашей системе, во время деструкции пула может кто-то к нему обращаться. а раз может «во время», значит может и после деструкции обращаться, а это уже ошибка совсем.

обращение во время деструкции надо оформлять паникой или эксепшеном. и смотреть откуда оно берется вообще, ибо такого быть не может в корректной программе.

в правильной логике сначала стопят всех, кто может лезть в обьект, и потом убивают обьект.

то есть тредпул должен иметь функцию stop_all(), где он переводится в неактивное состояние и не может далее добавлять треды, и в ней он ожидает завершения всех его тредов.

но тредпул должен быть недеструктрурирован, пока есть ненормальные, что могут к вызвать его функции.

Исходная версия alysnix, :

у вас логикой все нормально? если вы защищаете деструктор пула мьютексом, значит в вашей системе, во время деструкции пула может кто-то к нему обращаться. а раз может «во время», значит может и после деструкции обращаться, а это уже ошибка совсем.

обращение во время деструкции надо оформлять паникой или эксепшеном. и смотреть откуда оно берется вообще, ибо такого быть не может в корректной программе.

в правильной логике сначала стопят всех, кто может лезть в обьект, и потом убивают обьект.