Size: a a a

2020 December 30

Miss Очепятка... in Delphi & Lazarus
Sergey Bodrov
Операции с переменными размером с машинное слово атомарны.
Только для выровненных данных.
источник

a

alexey t in Delphi & Lazarus
например в этой около 1000 функций. я даже свиг ради нее пересобрал. но погряз в метаязыке и плюнул.
источник

GB

George Bakhtadze in Delphi & Lazarus
Dmitry Belkevich
безопасно, что бы ничего не свалилось. если функция сравнения вернет неверное состояние, это не критично. состояние скорее всего будет неверным в любом случае
свалиться не свалится. тут может быть только неактуальное значение, что как ты говоришь некритично. хотя тогда можно рандом сравнивать. :)
а вообще CAS обычно используют в таких случаях
источник

GB

George Bakhtadze in Delphi & Lazarus
Denis K
InterlockedExchange же есть... или это про FPC вопрос?
в FPC он как раз есть. и даже барьеры отдельно есть
источник

DB

Dmitry Belkevich in Delphi & Lazarus
George Bakhtadze
свалиться не свалится. тут может быть только неактуальное значение, что как ты говоришь некритично. хотя тогда можно рандом сравнивать. :)
а вообще CAS обычно используют в таких случаях
абсолютной атомарности и достоверности не будет никогда: значение функции может стать неверным даже за время возврата (интерлок закончился, второй поток поменял значение). так что не критично
источник

Miss Очепятка... in Delphi & Lazarus
Dmitry Belkevich
абсолютной атомарности и достоверности не будет никогда: значение функции может стать неверным даже за время возврата (интерлок закончился, второй поток поменял значение). так что не критично
Поэтому надо думать в терминах транзакций.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Miss Очепятка
Поэтому надо думать в терминах транзакций.
для кода некритично. если вернулось неверное значение, то случится ошибка и всё пересчитается за второй заход.

в жизни работает нормально. только что раньше значение было строкой и я его лочил с помощью CS. а на integer'е решил оставить как есть
источник

GB

George Bakhtadze in Delphi & Lazarus
Dmitry Belkevich
абсолютной атомарности и достоверности не будет никогда: значение функции может стать неверным даже за время возврата (интерлок закончился, второй поток поменял значение). так что не критично
в таких случаях важна не атомарность, а порядок событий. коево без синхронизации не будет. т.е. смысл проверки теряется. хотя в случае дельфи и i386/AMD64 архитектур может быть за счет гарантий имеющихся в этих архитектурах.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
проверка идет часто. чаще всего раз в секунду. а вот изменения редкие. может быть одно за месяц или в день. поэтому не критично. если что, то пересчитается в другом месте
источник

DB

Dmitry Belkevich in Delphi & Lazarus
это вообще граница тома изображений. она у нас всегда нежесткая. попытка посчитать жесткостую границу вылезла в чумовую нагрузку точными расчетами размеров. было решено, что максимум перелета границы в один гиг не так критичен, как проблемный побайтный расчет квот.
в жизни проблем пока не было ни разу
источник

GB

George Bakhtadze in Delphi & Lazarus
Dmitry Belkevich
проверка идет часто. чаще всего раз в секунду. а вот изменения редкие. может быть одно за месяц или в день. поэтому не критично. если что, то пересчитается в другом месте
тогда лучше интерлокедами сделать и не париться о возможных проблемах на других платформах/версиях компилятора
источник

DB

Dmitry Belkevich in Delphi & Lazarus
ок, посмотрим пока как так пойдет
источник

AY

Alfred 🏳️ Yait in Delphi & Lazarus
Добрый вечер!
можно ли заюзать IdCmdTCPClient1 для приёма сообщений от сервера?
источник

AS

Alexey Shumkin in Delphi & Lazarus
Alfred 🏳️ Yait
Добрый вечер!
можно ли заюзать IdCmdTCPClient1 для приёма сообщений от сервера?
что именно ты хочешь сделать? ))
источник

AY

Alfred 🏳️ Yait in Delphi & Lazarus
Alexey Shumkin
что именно ты хочешь сделать? ))
чат
источник

AS

Alexey Shumkin in Delphi & Lazarus
а как ты хочешь организовать взаимодействие с сервером?
источник

AY

Alfred 🏳️ Yait in Delphi & Lazarus
Alexey Shumkin
а как ты хочешь организовать взаимодействие с сервером?
с клиента отправляется, а потом с сервера отправляется ответ клиенту
источник

AS

Alexey Shumkin in Delphi & Lazarus
Alfred 🏳️ Yait
с клиента отправляется, а потом с сервера отправляется ответ клиенту
ну обычное клиент-серверное взаимодействие...
так что cmdclient ок, вроде
источник

AY

Alfred 🏳️ Yait in Delphi & Lazarus
Alexey Shumkin
ну обычное клиент-серверное взаимодействие...
так что cmdclient ок, вроде
ок, а какое событие прослушивает ответ от сервера?
источник

AS

Alexey Shumkin in Delphi & Lazarus
Alfred 🏳️ Yait
ок, а какое событие прослушивает ответ от сервера?
дык, смотри какие есть )
источник