Size: a a a

2019 November 22

AM

Artem Malyshev in rannts
При форке значения другого треда будут видны?
источник

ИК

Иван Кривошеев in rannts
Ммм, короче будет полная копия. И эта переменная станет threas local для другого потока
источник

ИК

Иван Кривошеев in rannts
Ну был процесс A с 1 потоком и thread local var
var.a = 1

Сделали fork. Появился процесс B. У него также будет thread local var и
var.a = 1
источник

AM

Artem Malyshev in rannts
:(
источник

ИК

Иван Кривошеев in rannts
И изменения в B, процесс A не затронут. Как и верно обратное
источник

ИК

Иван Кривошеев in rannts
Но это достаточно просто решается😕
источник

ИК

Иван Кривошеев in rannts
В Гугле пишут что даже есть библиотека которая решает эти проблемы🤔
источник

AM

Artem Malyshev in rannts
Есть вариант так не делать, при условии что процесс форка я контролировать не могу. Его будет делать waitress или gunicorn.


Проблема, которую я хочу создать:
- есть несколько публичных функций модуля.
- они могут вызывать друг друга внутри себя
- пользователь может вызывать любую из функций
- надо написать декоратор для этих функций, который реализует Лок на ресурс.
- функции вложенные должны уметь получить Лок захваченный в этом же треде выше по колл стэку
- сейчас это делается пропагированием аргумента skip lock при вызове вложенных функций.

Хочу реализовать без аргумента.
источник

ИК

Иван Кривошеев in rannts
@ildaar эй?) Куда удалил
источник

in

ildar nizamov in rannts
Решил, что недостаточно пятнично)
источник

ИК

Иван Кривошеев in rannts
Artem Malyshev
Есть вариант так не делать, при условии что процесс форка я контролировать не могу. Его будет делать waitress или gunicorn.


Проблема, которую я хочу создать:
- есть несколько публичных функций модуля.
- они могут вызывать друг друга внутри себя
- пользователь может вызывать любую из функций
- надо написать декоратор для этих функций, который реализует Лок на ресурс.
- функции вложенные должны уметь получить Лок захваченный в этом же треде выше по колл стэку
- сейчас это делается пропагированием аргумента skip lock при вызове вложенных функций.

Хочу реализовать без аргумента.
Гугл пишет, что эту проблему вот эта либа решает: https://pypi.org/project/multiprocessing-utils/
Но брать её, ради избваления от этой проблемы - решать тебе...
источник

ИК

Иван Кривошеев in rannts
Artem Malyshev
Есть вариант так не делать, при условии что процесс форка я контролировать не могу. Его будет делать waitress или gunicorn.


Проблема, которую я хочу создать:
- есть несколько публичных функций модуля.
- они могут вызывать друг друга внутри себя
- пользователь может вызывать любую из функций
- надо написать декоратор для этих функций, который реализует Лок на ресурс.
- функции вложенные должны уметь получить Лок захваченный в этом же треде выше по колл стэку
- сейчас это делается пропагированием аргумента skip lock при вызове вложенных функций.

Хочу реализовать без аргумента.
источник

AM

Artem Malyshev in rannts
:'(
источник

AM

Artem Malyshev in rannts
Каждую версию каждой зависимости надо проводить через процесс двойного пир ревью 😭
источник

ИК

Иван Кривошеев in rannts
Сейчас где-то сидит один виндюзатник и хлопает в ладошки😒
источник

ИК

Иван Кривошеев in rannts
А все почему? А потому что у них форка нету!
источник

AM

Artem Malyshev in rannts
Иван Кривошеев
А все почему? А потому что у них форка нету!
Если бы я мог контролировать то, как клиенты запускают нашу аппу, я бы не парился. Поставил бы другую стратегию запуска и не грустил.
источник

ИК

Иван Кривошеев in rannts
Artem Malyshev
Если бы я мог контролировать то, как клиенты запускают нашу аппу, я бы не парился. Поставил бы другую стратегию запуска и не грустил.
Я понимаю
источник

AM

Artem Malyshev in rannts
Иван Кривошеев
А все почему? А потому что у них форка нету!
У них много чего нет, зато проблемы есть. Например, из-за того как там работает multiprocessing отваливается isinstance. Если ты конечно сам экземпляр в родительском процессе создал.
источник

AM

Artem Malyshev in rannts
Спасибо, что выслушал пост боли 🤗
источник