Frage

Ich bin mit parallel-Python und einen neuen Job Server in einer Funktion starten. nach den Funktionen Enden existiert es noch, obwohl ich es nicht zurückkehrte aus der Funktion (I verwenden WeakRef dies zu testen). Ich denke, es gibt noch einige Verweise auf dieses Objekt irgendwo. Meine zwei Theorien: Es beginnt Threads und es meldet sich root-Logger

.

Meine Fragen: Kann ich findout irgendwie in dem Namensraum gibt es noch eine Referenz auf dieses Objekt. Ich habe die WeakRef Referenz. Wer weiß, wie ein Logger zu lösen? Was andere Debug-Vorschläge machen die Leute haben?

hier ist mein Testcode:

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)

Vielen Dank im Voraus     Wolfgang

War es hilfreich?

Lösung

Sie können gc.get_referrers(obj) verwenden, um herauszufinden, was das Objekt verweist. Da Sie wahrscheinlich ein paar dicts als Antwort bekommen, dann müssen Sie ein paar Ebenen nach oben zu keinen Sinn daraus machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top