Size: a a a

pro.graphon (and gamedev)

2020 November 07

k

koren in pro.graphon (and gamedev)
disba1ancer
мне сейчас в голову пришёл вариант с жареным указателем...
Что за жареный указатель?
источник

I

Ioann_V in pro.graphon (and gamedev)
disba1ancer
@Ioann_V думал над реализацией очереди для task stealing, но напоролся на один неприятный момент с размером очереди, если вместимость очереди динамическая, то имеется проблема при кражах во время реаллокации контейнера тасок, связанная с тем что указатель на контейнер с тасками может поменяться неожиданно, даже если мы при каждом копировании элемента будем обновлять указатель, может возникнуть проблема, поток взял указатель и перед тем как сделать копирование был прерван ОС, к примеру, и в этот момент другой поток который делает реаллокацию контейнера, обновил указатель и успел разрушить старый контейнер, и получается что по логике ворующий поток уже должен прочитать данные из протухшей памяти, можно как-нибудь исключить такую вероятность?
там не надо реаллоцировать и освобождать память
источник

I

Ioann_V in pro.graphon (and gamedev)
то есть уничтожать старый контейнер не надо
источник

I

Ioann_V in pro.graphon (and gamedev)
освобождение памяти происходит при завершении таски
источник

d

disba1ancer in pro.graphon (and gamedev)
Ioann_V
освобождение памяти происходит при завершении таски
у меня в контейнере хранятся указатели на таски
источник

d

disba1ancer in pro.graphon (and gamedev)
Ioann_V
то есть уничтожать старый контейнер не надо
и что делать если контейнера не хватило для приёма таски?
источник

I

Ioann_V in pro.graphon (and gamedev)
disba1ancer
и что делать если контейнера не хватило для приёма таски?
там выделяется новый, в него копируется старый, но при этом все новые таски помещаются в новый по индексу
источник

I

Ioann_V in pro.graphon (and gamedev)
а старые - либо из старого берутся либо из нового
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
disba1ancer
@Ioann_V думал над реализацией очереди для task stealing, но напоролся на один неприятный момент с размером очереди, если вместимость очереди динамическая, то имеется проблема при кражах во время реаллокации контейнера тасок, связанная с тем что указатель на контейнер с тасками может поменяться неожиданно, даже если мы при каждом копировании элемента будем обновлять указатель, может возникнуть проблема, поток взял указатель и перед тем как сделать копирование был прерван ОС, к примеру, и в этот момент другой поток который делает реаллокацию контейнера, обновил указатель и успел разрушить старый контейнер, и получается что по логике ворующий поток уже должен прочитать данные из протухшей памяти, можно как-нибудь исключить такую вероятность?
звучит как ты заюзал какуюто странную неправильную очередь
источник

I

Ioann_V in pro.graphon (and gamedev)
Aidar Fattakhov
звучит как ты заюзал какуюто странную неправильную очередь
не там все ок, если Дисбалансер реально разбирал код таск стилинга
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
Ioann_V
не там все ок, если Дисбалансер реально разбирал код таск стилинга
так он вектор описал
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
ну условно
источник

I

Ioann_V in pro.graphon (and gamedev)
ну в статье дек используют
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
дек не реалоцирует
источник

I

Ioann_V in pro.graphon (and gamedev)
тьак я ему и пишу
источник

I

Ioann_V in pro.graphon (and gamedev)
что релоцироывать не надо как раз
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Maksim Litvinov
"треугольного квадродерева" - ЧТО?!
Я картинку привёл
источник

ML

Maksim Litvinov in pro.graphon (and gamedev)
Anatoly Tomilov
Я картинку привёл
с картинкой понятно. Не понятно с "треугольным квадродеревом"
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
Aidar Fattakhov
дек не реалоцирует
Кстати накрн неправда для очереди чанков
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Maksim Litvinov
с картинкой понятно. Не понятно с "треугольным квадродеревом"
вот ещё для инсайтов
источник