|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.06.2017, 12:26 | #11 |
Заблокирован
Регистрация: 11.11.2016
Сообщений: 261
|
В unique_ptr кастомный удалятор задается вторым параметром при инстанцировании шаблона и инициализации.
|
19.06.2017, 12:31 | #12 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Цитата:
...вобщем не рекомендуется все это - сделать класс (можно и шаблон) - обвертку, который удаляет ресурс и имеет оператор приведения типа в него. А указатель уже на обвертку. |
|
19.06.2017, 13:12 | #13 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Вообще-то функция называется GetInstance - с чего бы там чего-то удалять? Да и вообще, суть была как из указателя получить ссылку.
Какая разница? Функция удаления изменится так же как и хендл, так что все будет переносимо. То, что поменяется тип хендла нам по барабану. |
19.06.2017, 13:13 | #14 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
|
19.06.2017, 22:54 | #15 | |
Заблокирован
Регистрация: 11.11.2016
Сообщений: 261
|
Цитата:
Кроме того, может возникнуть такая проблема, что инстансов для работников будет много, и в каждом открыто свое соединение вместо использования одного глобального. Это очень нехорошо. |
|
20.06.2017, 04:50 | #16 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Я делал так...Запускаю поток, в его функции открываю соединение, дальше бесконечный цикл, с проверкой некого глобального атомарного флага-сигнала, что всем потокам в проге пора закончится.
В цикле переодически проверяю приватный мембер-очередь, есть ли че новое (синхр.), если нет - то спимс, если есть .. (можно сделать на conditional variable, тогда вообще ЦП есть не будет). Вобщем в очередь засовывается "запрос" из другого потока, содержащий sql текст и лямбду-ответ. Поток исполняет запрос и вызывает лямбду с полученым ответом (т.о. лямбда в контексте этого потока, так что должна учитывать это, при обработке результата), и все повторяем. Т.о. собссно само "соединение" у вас оказывается локальной переменной внутри ф. потока, и ваще ниче морочить не нада. Калбеки вот те, можно организовать через некие статики в этом же файле, которые доступны только потоку-исполнителю. Если необходимо синхронное исполнение запроса, тогда к "запросу" добавляется мембер ожидания некий, и сигналер. Поток-исполнитель его сигналит после вызова лямбды, а тот, кто вызвал запрос, просто ждет сигнала, сразу после вызова. Последний раз редактировалось alexzk; 20.06.2017 в 04:55. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Синглтон и паттерн. Что это такое и с чем его едят? (C#)) | max_prorok | Общие вопросы по программированию, компьютерный форум | 21 | 22.03.2016 14:59 |
Запрос с параметром | Claster | Помощь студентам | 0 | 11.06.2012 11:44 |
Синглтон. Исключение при вызове метода через глобальную точку доступа. | clions | C# (си шарп) | 3 | 13.04.2012 21:09 |
Цикл с параметром | Гузеля | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 21.03.2012 20:59 |
Синглтон | megachuhancer | Общие вопросы Delphi | 0 | 11.05.2010 13:23 |