Gibt es eine direkte Möglichkeit, die registered name
, die mit einer pid()
verbunden ist, abzurufen? Oder muss ich durch die registered()
Namen gehen und ein whereis()
auf jedem Element der Liste tun, um es zu finden?Erlang: Erhalten des "registrierten Namens" mit einem "pid" verbunden
9
A
Antwort
13
Check out erlang:process_info/2 und diese itemspec:
{registered_name, Atom}
Atom ist der registrierte Name des Prozesses. Wenn der Prozess keinen registrierten Namen hat, ist dieses Tupel nicht in der Liste vorhanden.
PS. Warum möchten Sie diese umgekehrte Zuordnung? Ist es nur zum interaktiven Debuggen?
@Christian: Ich habe einen "Nachrichtenbus", wo ich die "Abonnenten" verfolgen. Ich mache das über ihren "registrierten Namen", also wenn ein Server neu startet (neues pid()), verliere ich nicht seine ganze Konfiguration -> niedrigere Ausfallzeit – jldupont