Archive by Author

Вести с полей

Привет всем. Никак не получается притормозить изменения в IBP и перейти к финализации версии 5.17. Ну очень увлекательное занятие. 0. Сначала о стороннем. Судя по субъективным наблюдениям — если гонять тесты в четыре потока, то FB3 (Win/SS/x64) вроде как работает без проблем. Если в десять потоков, то рано или поздно к нему приходит северный пушистый […]

64-битные счетчики ссылок

В новой тестовой сборке IBProvider (v5.17.0.34920) осуществлен переезд на 64-битные unsigned счетчики ссылок COM-объектов. Как в 64-битных, так и в 32-битных сборках. IUnknown::AddRef теперь всегда возвращает 1, а IUnknown::Release или 1 или 0. — Внутренние объекты тоже переведены на 64-битные счетчики ссылок. — Для инкремента и декремента используются Interlocked-функции Win32 API. На древней 32-битной WinXP […]

Объектное API

Надо сформулировать, в первую очередь для себя, базовые принципы, на которые стоит опереться при создании интерфейса компонент. Пока нахожусь в здравом уме и ясной памяти 🙂 1. В основе должен быть IUnknown. — Это динамическая поддержка нескольких интерфейсов — Это агрегация 1.5 Взять из COM принципы управления памятью и указателями на интерфейсы. 2. Первый аргумент […]

Вести с полей

В заканчивающимся апреле в IBProvider произошла пара сдвигов, которые планировались очень давно, но до них все никак «не доходили руки». 1. Получение плана запроса. Летом 2019-го один коварный клиент убедительно попросил добавить возможность получать через провайдер план запроса. Я об этом думал уже давно. А тут еще и совесть начала про это напоминать. В общем, […]

4 года с момента релиза FB3

Subj Я напомнил, а дальше вы сами 🙂

Вести с полей

В одной популярной книге по программированию для домохозяек советуют каждый день что-нибудь выкидывать из вещей. Этот ценный совет применим и для сопровождения программных систем. Решил выкинуть из IBProvider сомнительный метод чтения с I4-колонок с приведением NULL к нулевому значению. Он используется, в том числе, для чтения значения колонок rdb$procedure_inputs и rdb$procedure_outputs (таблица rdb$procedures). Хотя бы […]

Вести с полей. C++17

Текущие тестовые сборки IBProvider (v5.14.0.33732) откомпилированы с указанием режима совместимости с C++17. Пока в коде IBP ничего из C++17 не используется. Но вот STL таки да — уже из C++17. Хотя нет. Я же «if constexpr» задействовал во встроенном zlib1, чтобы изничтожить часть предупреждений компилятора… Из вещей, которые уже очень хочется начать использовать в самом […]

Нагрузочное тестирование IBP v5 (vc15)

Обычно, нагрузочное тестирование IBProvider выполняется с использованием сборок, созданных компилятором последней Visual Studio. В настоящий момент времени это VS2019 (сигнатура сборок — vc16). В личных кабинетах доступны еще сборки, собранные в VS2017. На днях один очень старый и любимый клиент продлил лицензию. И выбрал сборки VS2017 (сигнатура vc15). Все бы ничего, но тут на rsdn […]

Обновление инсталлятора ADO.NET провайдера

На сайт загружен обновленный инсталлятор ADO.NET провайдера, который самостоятельно может инсталлировать и деинсталлировать VSIX-пакеты с DDEX-провайдерами для VS2017/VS2019. Так что, вот в эту инструкцию уже можно не вникать.

Как выглядят костыли в коде (#2)

Привет. По свежим следам, добавлю сюда заметку про недавнее изменение в коде FB3. Вдогонку Вкратце о проблеме. 1. Есть объект со счетчиком ссылок (класс rem_port). 2. Этот объект управляется через смарт указатель. И, по идее, проблем быть не должно. 3. Тем не менее у него проблема с управлением времени жизни. Дважды удаляется в многопоточной среде. […]

« Older Entries   Recent Entries »