169 похожих чатов

Рантайм dll где лежит, а основной програмы?

21 ответов

35 просмотров

что есть рантайм? менеджер памяти? менеджер памяти у DLL свой, у приложения - свой а я ещё хочу из той DLL - звать другую DLL ) вообще на Си/++ писанную, и у неё тоже будет внутри что-то своё, свой менеджер памяти

Boris-Usievich Автор вопроса
notme
что есть рантайм? менеджер памяти? менеджер памяти...

Рантайм это грубо говоря system в паскале. Разный менеджер памяти приведет к глюкам если выделить память в одном, а освободить в другом. Writeln должен быть потокобезопасным но если рантайм разный, то могут быть проблемы

Boris Usievich
Рантайм это грубо говоря system в паскале. Разный ...

Аха, память у меня изолирована между DLL и приложением, у каждого своя, обмена нету

Handatros
Память не изолирована но RTL разный

ну и пусть, RTL это же просто код, какие могут быть проблемы если у него свои данные и кроме него никто другой туда не полезет?

Alexander 👋
Кстати writeln не потокобезопасный.

Да, я тока что убедился в этом )

notme
Да, я тока что убедился в этом )

Матюгаться охота, других слов нет.

notme
Да, я тока что убедился в этом )

приложение падает, или просто возникает путаница в выводе сообщений?

Александр Бурмистров
приложение падает, или просто возникает путаница в...

Путаница и падение с ЕГГОГ 201 (но я уже не за компом, вроде 201)

notme
Путаница и падение с ЕГГОГ 201 (но я уже не за ком...

Хотя, стоит отметить, что я писал в файл, а не в консоль

notme
Хотя, стоит отметить, что я писал в файл, а не в к...

В консоль - вывод через WriteLn из множества потоков работает нормально (FPC 3.3.1, Windows 11) В файл - вывод через WriteLn из множества потоков работает нормально (FPC 3.3.1, Windows 11), только если синхронизировать вывод

notme
В консоль - вывод через WriteLn из множества поток...

fpc 3.2.2, windows 10 WriteLn не работает нормально

Aleksandr Zhuikov
fpc 3.2.2, windows 10 WriteLn не работает нормальн...

program project1; uses Classes, SysUtils; type TMyThread = class (TThread) oftype: byte; procedure Execute; override; end; var i: Integer; threads_arr: array [0..2] of TMyThread; //cs: TRTLCriticalSection; //f: TextFile; procedure WriteRnd(oftype: byte); begin //EnterCriticalSection(cs); //WriteLn(f, 'type: ', oftype, ' end;'); //LeaveCriticalSection(cs); WriteLn('type: ', oftype, ' end;'); end; procedure TMyThread.Execute; var t1: TDateTime; begin t1:=Now; while (Now-t1)*MSecsPerDay<2000 do WriteRnd(oftype); end; begin //AssignFile(f, 'threads_test.txt'); //Rewrite(f); //InitCriticalSection(cs); for i:=0 to 2 do begin threads_arr[i]:=TMyThread.Create(True); threads_arr[i].oftype:=i; end; for i:=0 to 2 do threads_arr[i].Start; for i:=0 to 2 do threads_arr[i].WaitFor; for i:=0 to 2 do threads_arr[i].Free; //DoneCriticalSection(cs); //Close(f); ReadLn; end. Я так тестировал

notme
program project1; uses Classes, SysUtils; type ...

Проверил и в 3,2,2 - тоже работает

notme
В консоль - вывод через WriteLn из множества поток...

Так много поточную запись в файл в любом случае надо синхронизировать. Не важно writeln или что

Михаил Усков
Так много поточную запись в файл в любом случае на...

ну в общем говоря - на уровне API Windows - нет поддержки многопоточного вывода в файл, по крайней мере в функции WriteFile

Aleksandr Zhuikov
fpc 3.2.2, windows 10 WriteLn не работает нормальн...

Ну теперь интересно - работает? Нашлась проблема? Или реально под Win10 так работает - отлично от Win11?

notme
program project1; uses Classes, SysUtils; type ...

Пример не приведу, при выводе из нескольких потоков без синхронизации периодически рвёт строку пополам. Но это ожидаемое поведение.

Aleksandr Zhuikov
Пример не приведу, при выводе из нескольких потоко...

А, ну хотя может, я то так... наколеночно протестировал

notme
А, ну хотя может, я то так... наколеночно протести...

Если хочется прямо правильно и не думать сильно - бери стандартную модельку producer-consumer, там очередь.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта