python / python/cpython

Some multiprocessing APIs should be possible to import or use even when multiprocessing itself isn't available

Aberta
#134,634 4 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

OS-android OS-ios type-feature
Linguagem predominante
Python
Estrelas
77.2k
Forks
35.9k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Bug report

Bug description:

Android doesn't support multiprocessing because it doesn't support the System V IPC API, and iOS doesn't support subprocesses at all. However, there are a couple of things that should still work on these platforms, but currently don't:

  • multiprocessing.dummy.Pool (aka multiprocessing.pool.ThreadPool) currently depends on the multiprocessing synchronization primitives, when it could use the threading equivalents instead.

  • multiprocessing.synchronize throws an exception on import if the synchronization primitives are unavailable. But this breaks some packages like joblib, which imports the primitives but doesn't always use them (joblib/joblib#825).

Chaquopy has some monkey patches to work around these issues, but it would be better if they were fixed upstream.

CPython versions tested on:

CPython main branch

Operating systems tested on:

Other

Linked PRs
  • gh-148050

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece revisando os pontos de entrada multiprocessing.dummy.Pool e multiprocessing.pool.ThreadPool e, em seguida, inspecione multiprocessing.synchronize e sua falha no momento da importação em plataformas sem primitivas de sincronização. Compare o comportamento necessário com os equivalentes de threading e revise o PR vinculado gh-148050; considera-se concluído quando as APIs compatíveis puderem ser importadas ou usadas sem recursos de multiprocessing indisponíveis.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
operating-systems
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.