2008-11-12 4 views
5

Dans Erlang, chaque processus a un chef de groupe, et lorsqu'un processus veut imprimer quelque chose (c'est-à-dire qu'il appelle la bibliothèque io ou fait quelque chose de similaire), il envoie un message à son chef de groupe.Existe-t-il une spécification du protocole du chef de groupe qui gère les E/S?

Ma question est, où puis-je trouver la spécification de ces messages? Ou en général, la spécification de ce qu'un chef de groupe devrait faire?

J'ai réussi à trouver avec quelques expériences que parfois le processus envoie un terme {io_request, Sender, GroupLeader, Request}, et la réponse est un terme {io_reply, GroupLeader, ok}, mais il peut y avoir d'autres cas.

Répondre

6

The Erlang Rationale (video) ou (slides); est une bonne source d'information, tout comme le code source de user.erl.

En bref:

{io_request, From, ReplyAs, Request} 
    %From is the process to send the reply to, 
    %ReplyAs is any term the caller desires to 
    %match up the request and the response. (returned verbatim in the reply) 
    {io_reply, ReplyAs, Reply} 

Certaines demandes de user.erl:

{put_chars, IoList} % puts the iolist 
{put_chars, M,F,A} % puts the result of apply(M,F,A) 
{get_geometry, 'rows' | 'columns'} % returns the number of rows or columns of the console 
{get_line, Prompt} % calls io_lib:collect_line(Prompt) 
{get_chars, Prompt, Mod, Func, ExtraArgs} 
{get_until, Prompt, Mod, Func, Args} 
{setopts, Options} % only option supported by user is 'binary' 
        % (binary mode if present in Options, list mode otherwise) 
Questions connexes