Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Есть умные указатели, которые при выходе из области видимости удаляют объект. Но мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Другими словами, нужна обертка, у которой перегружены все операторы указателя + метод empty(), чтобы проверить валидность объекта. Можно обойтись без велосипедостроения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 17:59 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Любопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 18:19 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
maytonЛюбопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? Я хочу это использовать в собственном барьере синхронизации: с помощью этого механизма я пойму, что задача, унаследованная от QRunnable, выполнена и удалена. В Qt есть такое неудобство: QThreadPool позволяет дождаться заврешения всех задач, не разделяя их по подсистемам (поскольку работа идет через статический объект QGlobalInstance). А я хочу создать возможность для каждой подсистемы анализировать выполненность только своих задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 18:26 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLНо мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Не надо ничего анализировать. Либо у твоих объектов контролируемое время жизни, либо используется счётчик ссылок. Всё остальное - от лукавого. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:01 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЕсть умные указатели, которые при выходе из области видимости удаляют объект. Но мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Другими словами, нужна обертка, у которой перегружены все операторы указателя + метод empty(), чтобы проверить валидность объекта. Можно обойтись без велосипедостроения? Да. Это std::weak_ptr. Из std::shared_ptr копируете в weak_ptr. Пока объект существует, weak_ptr.lock() будет возвращать shared_ptr на него. Когда объект удален, то lock() вернет пустой shared_ptr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:14 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе надо ничего анализировать. Либо у твоих объектов контролируемое время жизни, либо используется счётчик ссылок. Всё остальное - от лукавого. Беда в том, что QThreadPool сам удаляет задачи. Я как-то попробовал написать delete для выполненной задачи и моя программа упала. А счетчики ссылок в умных указателях идут "в комплекте" с удалением объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:53 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyДа. Это std::weak_ptr. Из std::shared_ptr копируете в weak_ptr. Пока объект существует, weak_ptr.lock() будет возвращать shared_ptr на него. Когда объект удален, то lock() вернет пустой shared_ptr Тогда надо чтобы вторая подсистема работала с shared_ptr и не удаляла объект после окончания. А QThreadPool сам вызывает delete для задач, так что система упадет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:55 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Давайте по максимуму. Пускай все системы пишут с умными указателями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:59 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
maytonДавайте по максимуму. Пускай все системы пишут с умными указателями. Хотя, я не пробовал запаковывать задачу в shared_ptr и так скармливать QThreadPool: возможно он делает проверки типа и в этом случае не будет вызывать delete... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 20:04 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
maytonЛюбопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? Интереснее будет если проанализировать, что указатель не empty(), то что дальше? Вот если прикоснуться к нему оператором разыменования... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 11:19 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL... передать объект в другую подсистему и периодически анализировать удалили там его или пока нет.... ИМХО - у Вас совсем ДРУГАЯ задача. Вам нужна система подписчиков на удаление-добавление-редактирование объекта. И вся недолга... удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 11:22 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
petravmaytonЛюбопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? Интереснее будет если проанализировать, что указатель не empty(), то что дальше? Вот если прикоснуться к нему оператором разыменования... :) Дальше надо ждать, передав процессорное время другим потокам. Зачем к нему чем- то касаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 12:32 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLДальше надо ждать, передав процессорное время другим потокам. Зачем к нему чем- то касаться? Я говорил в общем, а вы не поняли моей шутки. Я писал про то как в одном потоке указатель проверяется на неравенство nullptr. И из этого делаются необоснованные выводы, в то время как второй поток обнуляет наш указатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 13:46 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
petravЯ говорил в общем, а вы не поняли моей шутки. Я писал про то как в одном потоке указатель проверяется на неравенство nullptr. И из этого делаются необоснованные выводы, в то время как второй поток обнуляет наш указатель. Связка share_ptr-weak_ptr не имеет эту проблему. Но ТС не врубился как weak_ptr применить к его кейсу. Скорее всего он и вообще не понял еще чего он хочет добиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 14:32 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСкорее всего он и вообще не понял еще чего он хочет добиться. Он хочет пойти против системы, которая автоматически удаляет объекты после использования. А он хочет удалять всё собственными руками. Зачем - неизвестно, наверное шаблоны окаменели. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:20 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн хочет пойти против системы... Просто отличное начало! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:26 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн хочет пойти против системы, которая автоматически удаляет объекты после использования. А он хочет удалять всё собственными руками. Зачем - неизвестно, наверное шаблоны окаменели. Нет, я не хочу удалять руками. Система уже сама удаляет задачи, и я наоборот хочу предотвратить повтроное удаление задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:31 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
[/quot AlekseySQL] Система уже сама удаляет задачи, и я наоборот хочу предотвратить повтроное удаление задач. [/quot] Так в чём проблема-то? Передал задачу системе и забыл про неё. Система удалит её ровно один раз, после выполнения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:34 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТак в чём проблема-то? Передал задачу системе и забыл про неё. Система удалит её ровно один раз, после выполнения. + надо отследить, что задача выполнилась и удалилась. Поэтому топик называется: "Есть готовые обертки для указателей с проверкой на существование объекта?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 19:58 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL+ надо отследить, что задача выполнилась и удалилась. Не надо: удалится она сама. Как задача отрапортует о своём выполнении - не имеет ничего общего с сабжем и определяется по обстоятельствам. Насколько я знаю, в Qt принято посылать сигналы, но никто не мешает поместить результат в очередь, записать в файл или отослать почтовым голубем. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 20:37 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе надо: удалится она сама. Как задача отрапортует о своём выполнении - не имеет ничего общего с сабжем и определяется по обстоятельствам. Насколько я знаю, в Qt принято посылать сигналы, но никто не мешает поместить результат в очередь, записать в файл или отослать почтовым голубем. Я хочу избежать кода в задачах, чтобы весь код распался на независимые подсистемы. Задачи должны не знать, что за ними следят :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 08:20 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Попробовал QThreadPool скормить задачу обернутую shared_ptr, а в очередь положить weak_ptr и получил ошибку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. Другими словами, QThreadPool написан так, что ему нельзя скормить умный указатель, а только саму задачу. Походу и с другими обертками он поступит также. Значит остается только посылать сигналы из деструктора задачи (что мне не нравится, потому что превращает мою гениальную программу в код- лапшу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 08:39 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Появилась новая проблема :) А что если QThreadPool перемещает задачи по памяти? Ведь я тогда не смогу идентифицировать задачу по совпадению указателя! Вот какой шаблон запуска задачи: Код: plaintext нет и намека на константность указателя! Робя, а есть в языке какие- то объекты гарантирующие свою уникальность в работающей программе (реализация ключей)? Можно конечно, набрасать класс выдающий последовательно целые номера, но хочется работать со стандартными объектами, чтобы другим было легко читать мой чудо- код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 09:08 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Sysguid. Но он длинный. Можно просто глобальную atomic переменную и брать из нее последовательность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 09:40 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLесть в языке какие- то объекты гарантирующие свою уникальность в работающей программе (реализация ключей)? Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 09:51 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dima TAlekseySQLесть в языке какие- то объекты гарантирующие свою уникальность в работающей программе (реализация ключей)? Код: plaintext 1. 2. 3. Пасибки, создал класс- синглтон с атомарной переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:05 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLДругими словами, QThreadPool написан так, что ему нельзя скормить умный указатель, а только саму задачу. Походу и с другими обертками он поступит также. Значит остается только посылать сигналы из деструктора задачи (что мне не нравится, потому что превращает мою гениальную программу в код- лапшу). Сделайте обертку реализующую QRunnable внутри которой shared_ptr на ваш Task_ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:36 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЯ хочу это использовать в собственном барьере синхронизации: с помощью этого механизма я пойму, что задача, унаследованная от QRunnable, выполнена и удалена. В Qt есть такое неудобство: QThreadPool позволяет дождаться заврешения всех задач, не разделяя их по подсистемам (поскольку работа идет через статический объект QGlobalInstance). А я хочу создать возможность для каждой подсистемы анализировать выполненность только своих задач.Так не используйте globalInstance(), создайте свой пул для каждой подсистемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:12 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЯ хочу избежать кода в задачах, чтобы весь код распался на независимые подсистемы. Задачи должны не знать, что за ними следят :) Так за ними и не надо следить. Но даже независимые подсистемы как-то должны общаться между собой. Планировщик задач не должен за ними следить, его работа сформировать задачу и отдать её на выполнение. Задаче при выполнении достаточно закинуть свой результат в известную ей очередь "выполненных заданий". Кто эту очередь будет вычитывать - не её дело. Диспетчер результатов не должен следить за задачами, его дело тупо сидеть сидеть и ждать сообщений из очереди выполненных задач. Именно так я понимаю "независимые подсистемы". У тебя же они как-то слишком запутываются в тугой узел "слежения". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:18 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСделайте обертку реализующую QRunnable внутри которой shared_ptr на ваш Task_ Спасибо! Что- то я про такое решение и не подумал! Думаю это лучший вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:36 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLСпасибо! Что- то я про такое решение и не подумал! Думаю это лучший вариант. А есть последствия, что я при определении полей объекта создаю shared_ptr по this, хотя объект недосконструирован? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 13:16 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLА есть последствия, что я при определении полей объекта создаю shared_ptr по this, хотя объект недосконструирован? Так делать нельзя. Да и я вообще не это имел в виду. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 13:33 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Ну и естественно добавить в TaskWrapper методы которые QRunnable долже реализовывать и в них вызывать те же методы у m_task_ptr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 13:37 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНу и естественно добавить в TaskWrapper методы которые QRunnable долже реализовывать и в них вызывать те же методы у m_task_ptr Не понял зачем это надо: ведь наследование у нас публичное и все методы QRunnable и так доступны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:01 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
QThreadPool ничего не знает про shared_ptr, и единственный способ это обойти - передать ему указатель не на вашу задачу, а на другой вспомогательный объект, в котором уже лежит shared_ptr на вашу задачу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:08 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLНе понял зачем это надо: ведь наследование у нас публичное и все методы QRunnable и так доступны... ЧТобы как минимум вызвать метод который совственно стартует поток. В обертке кода потока нет. Она должна перенаправить его на вложенный объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:13 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
BTW, в QRunnable есть пара методов: bool autoDelete() const void setAutoDelete(bool autoDelete) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:15 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЧТобы как минимум вызвать метод который совственно стартует поток. В обертке кода потока нет. Она должна перенаправить его на вложенный объект. Надо метод run() реализовать и все: наследование от QRunnable уже делает этот поток задачей. В методе run() как раз и описывается что должна делать задача, а библиотечный объект QRunnable не позволяет у себя создать метод run(). Так что думаю никаких методов никуда перенаправлять не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:21 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
BarloneBTW, в QRunnable есть пара методов: bool autoDelete() const void setAutoDelete(bool autoDelete) Спасибо, не замечал этой возможности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:23 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:25 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЕсть умные указатели, которые при выходе из области видимости удаляют объект. Но мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Другими словами, нужна обертка, у которой перегружены все операторы указателя + метод empty(), чтобы проверить валидность объекта. Можно обойтись без велосипедостроения? weak_ptr ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:39 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL Тут МастерЗив отжег по теме :) Думаю после этого тема исчерпана.А зачем вам shared_ptr на this? Если вы передадите этот объект в QThreadPool::start, при завершении задачи объект будет удален, и вы останетесь со сломанным shared_ptr с ненулевым счетчиком и невалидным указателем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:10 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLBarloneBTW, в QRunnable есть пара методов: bool autoDelete() const void setAutoDelete(bool autoDelete) Спасибо, не замечал этой возможности!Но есть один нюанс: если сделаете setAutoDelete(false), получите другой квест - как узнать, что задача уже завершилась и ее можно удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:35 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
BarloneНо есть один нюанс: если сделаете setAutoDelete(false), получите другой квест - как узнать, что задача уже завершилась и ее можно удалять. Это сложно. Вставить "delete this" в правильное место способен не каждый, тут программист нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:52 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovBarloneНо есть один нюанс: если сделаете setAutoDelete(false), получите другой квест - как узнать, что задача уже завершилась и ее можно удалять. Это сложно. Вставить "delete this" в правильное место способен не каждый, тут программист нужен. Так если по мнению автора, из деструктора сигналы посылать некошерно, хотя это можно сделать в одном месте и отнаследоваться, то что уж говорить про вставку какого-то дополнительного кода в каждый метод run каждого наследника (а я подозреваю, что их больше одного, что - то там про подсистемы было...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 16:04 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Barloneчто - то там про подсистемы было... Аффтар просто переусложняет задачу. Насколько я помню, у него просто есть большой массив данных, которые он хочет параллельно обсчитать. Но вместо обычного пути использования start-join стандартных потоков он выбрал путь самурая, ведущий к смерти. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 16:09 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЕсть умные указатели, которые при выходе из области видимости удаляют объект. Но мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Чем не подходит сохранить у себя еще один shared_ptr и смотреть его счетчик использования? Здесь еще, возможно, надо смотреть на то, чтобы объект удалялся в том же exe/dll модуле, где был создан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 17:10 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Еще через сто сообщений мы плавно подойдем к GC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 19:57 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
maytonЕще через сто сообщений мы плавно подойдем к GC. Garbage Collector & C++ Вообще- то вопрос возник не из- за памяти, а из- за желания разделить программу на независимые подсистемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 08:02 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLиз- за желания разделить программу на независимые подсистемы. Желание разделить программу на подсистемы - правильное. Делать спагетти из перекрёстных ссылок - неправильный способ его достижения. При разделении на подсистемы, их следует максимально инкапсулировать, оставляя торчать наружу только определённый интерфейс. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 12:16 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
teo609AlekseySQLЕсть умные указатели, которые при выходе из области видимости удаляют объект. Но мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Чем не подходит сохранить у себя еще один shared_ptr и смотреть его счетчик использования? Здесь еще, возможно, надо смотреть на то, чтобы объект удалялся в том же exe/dll модуле, где был создан. weak_ptr для этого есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:49 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Вы забыли еще о том что программа - "гениальная". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 14:18 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL Garbage Collector & C++ https://en.wikipedia.org/wiki/Boehm_garbage_collector вот ещё AlekseySQLжелания разделить программу на независимые подсистемы возьми шаблоны! Шаблоны могут распилить код на абсолютно независимые блоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 05:22 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЖелание разделить программу на подсистемы - правильное. Делать спагетти из перекрёстных ссылок - неправильный способ его достижения. При разделении на подсистемы, их следует максимально инкапсулировать, оставляя торчать наружу только определённый интерфейс. Согласен, что помимо "физического" разделения надо следить за "логическим" разделением, чтобы потом не ломать голову что это за очереди с непонятными указателями. Так что воспользовался вашим советом и отпилил этот апендикс, а вместо него из деструктора сообщаю о завершении задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 08:55 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLвместо него из деструктора сообщаю о завершении задачи. Деструктор - неправильное место для сообщения о завершении задачи. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 14:42 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДеструктор - неправильное место для сообщения о завершении задачи. Не, в этом случае нормальное место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 18:06 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
BarloneНе, в этом случае нормальное место. Конец функции run() - лучше. Не придётся ждать получения результатов до "when the last thread exits the run function". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 18:17 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2017876]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 300ms |
| total: | 482ms |

| 0 / 0 |
