Esiste un modo diretto per recuperare lo registered name
associato a pid()
? O devo passare attraverso i nomi 10 e fare un whereis()
su ogni elemento della lista per trovarlo?Erlang: ottenere il "nome registrato" associato a un `pid`
9
A
risposta
13
Partenza erlang:process_info/2 e questo ItemSpec:
{registered_name, Atomo}
Atom è il nome registrato del processo. Se il processo non ha un nome registrato, questa tupla non è presente nell'elenco.
PS. Perché vuoi questa mappatura inversa? È solo per il debug interattivo?
@Christian: ho un "message bus" dove tengo traccia degli "abbonati". Lo faccio tramite il loro "nome registrato", quindi quando un server si riavvia (nuovo pid()), non perdo tutte le sue configurazioni -> più basso tempo di attesa – jldupont