Pergunta

Estou usando o paralelo-python e inicio um novo servidor de emprego em uma função. Depois que as funções terminarem, ele ainda existe, embora eu não a devolva da função (usei o fracarf para testar isso). Eu acho que ainda há algumas referências a esse objeto em algum lugar. Minhas duas teorias: ele inicia threads e logs para root logger.

Minhas perguntas: De alguma forma, posso encontrar o nome de nome que ainda existe uma referência a esse objeto. Eu tenho a referência fraca. Alguém sabe como destacar um madeireiro? Que outras sugestões de depuração as pessoas têm?

Aqui está o meu teste de teste:

def pptester():

    js=pp.Server(ppservers=nodes)
    js.set_ncpus(0)
    fh=file('tmp.tmp.tmp','w')  
    tmp=[]
    for i in range(200):
        tmp.append(js.submit(ppworktest,(),(),('os','subprocess')))
    js.print_stats()
    return weakref.ref(js)

Obrigado antecipadamente Wolfgang

Foi útil?

Solução

Você pode usar gc.get_referrers(obj) Para descobrir o que está referenciando o objeto. Como você provavelmente terá um monte de ditos como resposta, precisará subir alguns níveis para entender isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top