powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
15 сообщений из 40, страница 2 из 2
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664673
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим Мещеряковпростой код код SafeUdf

kdv , этот код действительно есть в Safe Udf? Серверу будет очень весело,
когда он захочет использовать результат уже после того, как освободил входящие параметры.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664694
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovэтот код действительно есть в SafeUdf?
какой именно "этот" код? Мне кажется, ты перепутал эксперименты Мещерякова.
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664703
Dimitry SibiryakovКак я и сказал выше: FPC игнорирует IsMultithreaded. Вы уже пошли и написали это ему в трекер?
Это не баг а фича. в документации на freepascal.org (там я и нашел решение проблемы) написано:
You don´t need any special unit for this to work with Windows. However with Linux, Mac OS X and FreeBSD, you need the cthreads unit and it must be the first used unit of the project (the program source, usually the .lpr file)!
вот тут http://wiki.freepascal.org/Multithreaded_Application_Tutorial%5D]http://wiki.freepascal.org/Multithreaded_Application_Tutorial]
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664705
Dimitry Sibiryakov этот код действительно есть в Safe Udf? Серверу будет очень весело,
когда он захочет использовать результат уже после того, как освободил входящие параметры.


Вот код из SafeUdf.dpr

{ DECLARE EXTERNAL FUNCTION function3
CSTRING(80)
RETURNS CSTRING(80)
ENTRY_POINT 'function3' MODULE_NAME 'safeudf' }

function function3(P1: PChar): PChar; cdecl; export;
begin
P1:=StrCopy(P1, P1);
Result:=P1;
end;

Онт работает везде и всегда
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664706
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим МещеряковcthreadsСтранное название для модуля, который наверняка меняет менеджер памяти. Хотя я не смотрел. Но почему это не по умолчанию для невинды - загадочно.
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664713
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvкакой именно "этот" код?

Приведённый чуть ниже твоего поста. Возвращающий из функции указатель, полученный на вход.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664718
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим МещеряковЭто не баг а фича.

Кривой костыль это. Установки IsMultithreaded должно быть достаточно для того, чтобы
штатный менеджер памяти работал с учётом использования его из разных потоков. Но аффтары
FPC, как обычно, ниасилили.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664724
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Дима каждый инструмент диктует свои правила. В каждом есть свой набор костылей. Если какому-то инструменту нужны костыли это не значит что им нельзя пользоваться, надо всего лишь знать о наличии оных.
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664729
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

1. я не помню, зачем там вот это P1:=StrCopy(P1, P1); в функции3.
2. "Возвращающий из функции указатель, полученный на вход."
насколько я помню, аллокируется ФБ именно входной параметр (иначе никак), а выходной - никак не аллокируется (кроме случая free_it, которое является явным указанием ФБ что выходной параметр надо деаллокировать). Поэтому передать указатель входного параметра как выходной - получается норм. ФБ уничтожит только входной параметр. А значение будет получено до его уничтожения (по идее).
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664735
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем фантазировать про менеджеры памяти и прочее, если есть явное описание

https://www.freepascal.org/docs-html/rtl/cthreads/index.html
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664737
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисДима каждый инструмент диктует свои правила.

Я не против, но надо же либо трусы надеть, либо крестик снять. То бишь отдельные менеджеры
памяти на каждый чих и платформу - ок, но тогда неработающую IsMultithreaded надо на
соответствующих платформах либо выкосить, либо объявлять только в тех ММ, которые умеют ею
пользоваться. А создавать иллюзию работы с последующим segfault - это всё же баг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664762
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЗачем фантазировать про менеджеры памяти и прочее, если есть явное описание

https://www.freepascal.org/docs-html/rtl/cthreads/index.html Да, но в этом описании не сказано, что если 2-м юнитом проекта не указать менеджер cmem, то тоже проблемы segfault бывают. "Так свидетельствуют люди"...
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664788
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю у меня все работает
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39664792
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockпроблемы segfault бывают. "Так свидетельствуют люди"...Потому что компилировать нужно в полнолуние.
...
Рейтинг: 0 / 0
Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
    #39665064
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим МещеряковИменно так и создают сообщество, сообщество которое может помочь и в которое не бояться заходить новые участники.Ты заходи, не бойся :)
Главное, не путать форум с техподдержкой.

У нас тут, в зависимости от настроения, чаще пытаются всучить чертёж удочки, чем рыбу. Не воспринимай это как попытку тебе нахамить или потешить чьё-то эго.
(Обычно оно настолько большое, что такими мелочами его не потешить )
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0.3 - 3.0.4 SS Linux и udf на FreePascal со строковыми параметрами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]