Форум программистов, компьютерный форум CyberForum.ru

Освобождение памяти после std:bind - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Runtime error при открытии lua-скрипта http://www.cyberforum.ru/cpp/thread1788252.html
Всем доброго времени суток. Есть функция, задача которой прочитать lua-скрипт и перенести значения параметров из него в структуру. Код немного условный, потому что инициализация, подключение библиотек и деинициализация script_LuaState вынесены в отдельные функции. script_LuaState = luaL_newstate(); luaL_openlibs(script_LuaState);
C++ С++ идиомы - обсуждение Тема создана для вопросов и обсуждений С++ идиом http://www.cyberforum.ru/cpp/thread1788235.html
Операции с двоичными деревьями поиска C++
Добрый день. Пожалуйста, помогите с написанием программы: Разработать программу, реализующую следующий набор операций с двоичными деревьями поиска: поиск вершины с заданным значением ключа с выводом счетчика числа появлений данного ключа добавление новой вершины в соответствии со значением ее ключа или увеличение счетчика числа появлений построчный вывод дерева в наглядном виде с помощью...
C++ С++ идиомы
Перевод статей 1 и 2. Будет постепенно обновляться. Желающие внести вклад могут писать в ЛС. Тема открыта, просьба добавлять только посты с переводом, обсуждение здесь Переведенные идиомы: self-assignment in an assignment operator Scope Guard Shrink-to-fit Checked delete Pointer To Implementation
C++ Внедрение DLL в EXE http://www.cyberforum.ru/cpp/thread1787895.html
Здравствуйте, хочу написать свой объединитель exe и dll. Подскажите, как это можно сделать так, чтобы можно было при запуске использовать dll без записи на диск
C++ Как создать оконную программу на c++ exe Можно по подробние как создать оконную программу на c++ exe . Я только что перешол на c++ из Bash (cmd , bat , командная строка ) и как то не хочется опять возвращатся к консольным программам . Я незнаю еще не каких команд для C++ и не знаю не каких компеляторов но хотелось бы создать хотяюы самую простую оконную программу без всяких функций что бы просто открылось пустое окно . Вы поможите ? И... подробнее

Показать сообщение отдельно
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
01.08.2016, 19:16     Освобождение памяти после std:bind
Цитата Сообщение от karat39 Посмотреть сообщение
<func>
Есть подозрение, что и сейчас у тебя тоже не совсем правильно сделано.

Дело в том, что в функции-обработчики имеют довольно сильные ограничения на свое содержимое. На самом деле внутри них можно делать достаточно мало чего. Например очень плохо, если обработчик занимается выделением или освобождением памяти. Список функций, которые можно из них вызывать есть в мане. Если, например, из обработчика нужно дергать общую с остальным приложением переменную, то она должна быть типа sigatomic_t.

Поэтому более правильным будет либо использовать функции sigwait\sigtimedwait и выполнять ожидание в отдельном для сигналов потоке (пример есть тут), либо использовать события на signalfd (ожидание через poll/select и т.п.) пример есть тут. Оба способа позволяют обрабатывать сигнал в "нормальном" режиме, без ограничений на выполняемые операции. Какой из способов лучше - зависит от архитектуры приложения.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru