Evgenii
хотя там куча крутых людей сидит как я понял
Stanislav
по старинке на емейлы писать
Constantine
Слава, результат был отрицательным?
Constantine
На попытку два указателя -> сброс?
Berkus
у меня нет слаки :(
в браузере открой
Anonymous
Все "крутые чуваки" имеют как минимум электронную почту. Лучше всего именно через email и обращаться.
✙ Azrael
/stat@combot
Anonymous
Я например принципиально не стану решать вопросы в чатиках. Только email и с подписью ЭЦП.
Vladislav
Слава, результат был отрицательным?
пока не успел затестить, еще только на работу еду)
Anonymous
ишь ты какой принципиальный
Ага. В чатике твой собеседник потом скажет: "Ничего я не помню, о чём мы с тобой договаривались". А в случае email всё здесь, с подписями и служебными заголовками. От своих слов отказаться уже не выйдет.
Berkus
ну это... такой... дикарский подход несколько
Berkus
ничем не отличается от "по емейлу ничего не докажешь, а вот на бумаге с гербовой печатью - вот оно всё"
Anonymous
Поэтому у нас вся переписка либо ведётся через email, либо в баг-трекере. Всё остальное - просто общение.
Anonymous
ничем не отличается от "по емейлу ничего не докажешь, а вот на бумаге с гербовой печатью - вот оно всё"
Как раз таки докажешь. ЭЦП + служебные заголовки - доказательство для суда.
Berkus
а, ну если все вопросы через суд решать тогда конечно
Berkus
рекомендую гербовую печать
Anonymous
а, ну если все вопросы через суд решать тогда конечно
Да не обязательно. Рабочие вопросы тоже лучше через email и баг-трекер ибо очень много людей, которые любят потом от своих слов отказываться.
Berkus
таким людям неплохо указывать на возможность поискать работу где-то ещё
Berkus
сфера большая, где-то и такие пригодятся
Evgenii
кроме того в чатике другие люди могут ответить
Anonymous
кроме того в чатике другие люди могут ответить
Для этого списки рассылки есть.
Anonymous
У нас в Fedora Project именно в списках рассылки решаются вопросы. Письма также должны быть подписаны GPG.
Evgenii
Для этого списки рассылки есть.
щас бы в 2к17 получать сотни ненужных мейлов в день
Berkus
воу воу
Anonymous
щас бы в 2к17 получать сотни ненужных мейлов в день
Советую осилить почтовые клиенты и фильтры.
Berkus
список рассылки это отлично... просто прекрасно. а за оверквотинг вы там что делаете?
Evgenii
У нас в Fedora Project именно в списках рассылки решаются вопросы. Письма также должны быть подписаны GPG.
кроме решения вопросов иногда просто хочется попиздеть или проконсультироваться
Berkus
или почтовый тред 40 уровневой вложенности это норма?
Evgenii
Советую осилить почтовые клиенты и фильтры.
освоил, количество мейлов не уменьшилось😌
Anonymous
Anonymous
освоил, количество мейлов не уменьшилось😌
У меня в день приходит более 500.
Berkus
IRC? то есть логи чатов еще и отдельно хранить
Berkus
божечки
Evgenii
IRC чат в помощь, в т.ч. для разработчиков по инвайтам.
это все лишь бы не использовать что-нибудь придуманное в 21 веке?)
Anonymous
IRC? то есть логи чатов еще и отдельно хранить
Для трёпа IRC, для решения вопросов - списки рассылки и баг-трекер. Так в большинстве опенсорц проектов.
Anonymous
это все лишь бы не использовать что-нибудь придуманное в 21 веке?)
Слишком много ретроградов. Их не заставишь перейти в Telegram. Хотя у нас есть и Telegram чатик для разработчиков.
Дмитрий
Есть рабочие IRC чаты ?
Berkus
я могу только сказать - УДОБНО, ОЧЕНЬ УДОБНО
Anonymous
Есть рабочие IRC чаты ?
Да куча их. Смотри на сеть FreeNode.
Дмитрий
Ок, спасибо!
Nikita
Для этого следует согласовать время аудио-видеоконференции Через email
Evgenii
перешли б на гитхаб+гиттер например, как бы было удобно
Stanislav
https://groups.google.com/a/isocpp.org/d/msg/std-proposals/4wOU-1_3D0A/lVkUWPgpAQAJ
🐙 Antony
я тут вообще зашиваюсь, так что сейчас поспрашиваю соседей, может кто захочет поревьюить
🐙 Antony
не принимать :(
Roman
не опасно ли хранить shared_ptr на самого себя в самом себе? class Something { protected: std::shared_ptr<Something> _me; public: Something() : _me(this) {} }
vladislav
блин, жесть
vladislav
а можно нескромный вопрос: зачем тебе это?
Roman
а можно нескромный вопрос: зачем тебе это?
примитив может оборачиваться в Wrapper класс, который передаётся JavaScript движку. За врапер отвечает сборщик мусора JS, за сам примитив отвечаю я. враперу я передаю shared_ptr на примитив чтоб если того удалил gc - он удалил примитив, если тот ещё существует. внутри примитива держу shared_ptr на него же чтобы при желании сказать terminate(), сбавить ref count, но не удалиться, если ещё есть враперы
vladislav
вроде похоже на твой кейс https://stackoverflow.com/questions/11711034/stdshared-ptr-of-this
Roman
Так ведь враппер уже держит shared_ptr на примитив, пусть просто отпускает его и все
если garbage collector удалит врапер, то тот может потянуть за собой сам примитив, НО этого произойти не должно, потому-что примитив представляет собой асинхронную операцию, которая сама решает когда она готова к удалению (внутри она вызывает die() по завершению, это должно декрементировать reference counter, но удалить только если на примитив нет ссылок)
Roman
А тот кто говорит примитиву "terminate" - он как его находит?
самоуничтожиться примитив может только сам, т.е. никаких убийств, только суицид.
Vladislav
Я как-то писал класс-камикадзе с delete this, из-за кривого дизайна внешней библиотеки
Roman
просто на данный момент у меня SEGFAULT, и я не совсем уверен где именно, но подозревеаю что это из-за shared_ptr на себя-же
Vladislav
Хм
Roman
возможно shared_ptr<T> (this) опасно?
Vladislav
Погони с асаном
Vladislav
Разве что race condition где-то
Vladislav
shared_ptr сам по себе не thread safe
Constantine
shared_ptr сам по себе не thread safe
shared_ptr не thread-safe как объект и thread-safe как указатель, правильно жи?
Roman
а если стрим не нужен? мы вызовем деструктор, который вызовет деструктор _me, который вызовет delete для this тобишь два раза деструктор для стрима разве не?
Anonymous
.....
Constantine
Да, вопрос: в определенной версии МС компилятора была "фича", что если класс не имеет полей, деструктор не вызывается. Это была бага или какая-то "фича" стандарта?
Anonymous
всем привет
Roman
надо написать небольшой тест кейс
Vladislav
Наоборот (если объект не удаляется явно через delete и не выделяется на стоке)
Constantine
template <typename TArgument> inline DWORD WINAPI run_thread__start_routine(LPVOID lpParam) { std::unique_ptr<run_thread__start_routine__param_type<TArgument>> param( (run_thread__start_routine__param_type<TArgument> *)lpParam ); std::shared_ptr<TArgument> argument = std::atomic_load(&param->m_argument); param->m_lpRoutine(argument); return 0; }; template <typename TArgument, typename TEngine> inline void run_thread(void(*lpRoutine)(std::shared_ptr<TArgument>), std::shared_ptr<TArgument> argument, TEngine &engine) { run_thread__start_routine__param_type<TArgument> *param = new run_thread__start_routine__param_type<TArgument>(); param->m_lpRoutine = lpRoutine; std::atomic_store(&param->m_argument, argument); engine.Run(&run_thread__start_routine<TArgument>, (LPVOID)param); }; это жи правильный код запуска треда? :)
Constantine
и да, меня не волнует вопрос, что будет, если поток будет плеваться исключениями и что engine может запустить winapi thread, не инициализировав правильно C++ runtime