Где я могу найти список функций numpy, которые выпускают GIL?

Я нашел несколько SO-вопросов, которые так или иначе задают этот вопрос, но ни один из них не дает ни одного списка, ни ссылки на него.

Этот вопрос относится к страница вики, но хотя на странице вики говорится о GIL и многопоточности, она не дает списка функций, освобождающих GIL.

Это сообщение списка рассылки указывает, что единственный способ найти out - это прочитать источник numpy. Действительно?


person DanielSank    schedule 03.06.2014    source источник


Ответы (1)


Не гарантируется, что все поймают, но я просто побежал:

git grep nogil

в моем клоне репозитория numpy. В двух файлах получается 82 использования:

  • random/mtrand/mtrand.pyx
  • random/mtrand/numpy.pxd
person perimosocordiae    schedule 03.06.2014
comment
Элемент C для выпуска GIL - это Py_BEGIN_ALLOW_THREADS, если вы тоже хотите его найти. - person user2357112 supports Monica; 04.06.2014
comment
Этот ответ в основном читается в источнике. Это действительно единственный вариант? - person DanielSank; 04.06.2014
comment
Numpy - проект с открытым исходным кодом ... Если вы чувствуете себя филантропом, вы можете добавить эту информацию в документация и отправьте запрос на перенос, чтобы никому больше не пришлось читать исходный код! - person Benjamin Hodgson♦; 04.06.2014
comment
На самом деле numpy имеет свои собственные макросы для выпуска GIL, они определены здесь. Grepping для THREADS должен охватывать все случаи. - person Jaime; 04.06.2014
comment
@Jaime помните, что ссылка на строку кода в GitHub означает, что ваша ссылка перестает иметь смысл, когда код изменяется, и строка, пронумерованная в ссылке, больше не является тем же кодом, на который вы изначально хотели указать. Лучше создать ссылку на строку кода внутри определенного коммита, чтобы она никогда не могла измениться. - person DanielSank; 11.01.2018