LINUX.ORG.RU

История изменений

Исправление BOSS-NIGGER, (текущая версия) :

Я не работал с ctypes, но с точки зрения питоновских объектов у тебя есть деструктор (PyTypeObject::tp_dealloc), где ты и освобождаешь всё что нужно.

наверное так и сделаю, просто было интересно, может уже есть какой-нибудь встроенный delete [] (пускай который даже я должен вызывать) и не надо писать лишнюю функцию которой опять же этот пойнтер надо будет передавать, ибо не сделаю же я его глобальным.

По умолчанию предположу что это дичайшее UB. Кроме семантики атомиков, там и выравнивание может быть другое. Но вообще вопрос интересный, по идее должен быть способ после многопоточной работы с массивом атомиков бесплатно сконвертить его в обычную память.

Зачем там могло бы понадобиться другое выравнивание? Насколько я понимаю вся семантика атомиков сводится к операциям над ними.

по идее должен быть способ после многопоточной работы с массивом атомиков бесплатно сконвертить его в обычную память.

Я думаю это все же reinterpret_cast, но анон сверху пока тоже высказался отрицательно на этот счет, только пока не сказал почему.

Переметнуть в питон как именно? С передачей владения, без?

С передачей. Конечно тогда встает вопрос что делать с самим валэреем т.к. память выделяю я именно ему, но в принципе это экономия на спичках, пусть течет, жалко мне что ли. Хотя по сути и его надо просто передать как-то. Для этого можно передать пойнтер на массив из пойнтеров пойнтеров, в первой ячейке будет валэррей, во второй сам эррей, во нах, просто идеально.

Исходная версия BOSS-NIGGER, :

Я не работал с ctypes, но с точки зрения питоновских объектов у тебя есть деструктор (PyTypeObject::tp_dealloc), где ты и освобождаешь всё что нужно.

наверное так и сделаю, просто было интересно, может уже есть какой-нибудь встроенный delete [] (пускай который даже я должен вызывать) и не надо писать лишнюю функцию которой опять же этот пойнтер надо будет передавать, ибо не сделаю же я его глобальным.

По умолчанию предположу что это дичайшее UB. Кроме семантики атомиков, там и выравнивание может быть другое. Но вообще вопрос интересный, по идее должен быть способ после многопоточной работы с массивом атомиков бесплатно сконвертить его в обычную память.

Зачем там могло бы понадобиться другое выравнивание? Насколько я понимаю вся семантика атомиков сводится к операциям над ними.

по идее должен быть способ после многопоточной работы с массивом атомиков бесплатно сконвертить его в обычную память.

Я думаю это все же reinterpret_cast, но анон сверху пока тоже высказался отрицательно на этот счет, только пока не сказал почему.

Переметнуть в питон как именно? С передачей владения, без?

С передачей. Конечно тогда встает вопрос что делать с самим валэреем т.к. память выделяю я именно ему, но в принципе это экономия на спичках, пусть течет, жалко мне что ли.