Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

exchange

%%%-------------------------------------------------------------------
%%% @author farid
%%% @copyright (C) 2018, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 06. Jun 2018 10:34 AM
%%%-------------------------------------------------------------------
-module(exchange).
-author("farid").

%% API
-export([start/0]).


start() ->
  {_, EachData}=file:consult("calls.txt"),
  io:fwrite("\n** Calls to be made **\n"),
  register(master,self()),
  lists:foreach(fun(N) ->
    {Person, Friends}=N,
    io:fwrite("~w: ~w\n",[Person,Friends]),
    Pid = spawn(calling, receive_message,[]),
    register(Person,Pid),
    lists:foreach(fun(Friend) ->
      Person ! {call, Friend}
                  end, Friends)
                end, EachData),
  io:fwrite("\n\n"),
  get_feedback().

get_feedback() ->
  receive
    {intro, Sender, Receiver, Time} ->
      {registered_name,SName}=process_info(Sender,registered_name),
      {registered_name,RName}=process_info(Receiver,registered_name),
      io:fwrite("~w received intro message from ~w [~w]\n",[RName,SName,Time]),
      get_feedback();
    {reply, Sender, Receiver, Time} ->
      {registered_name,SName}=process_info(Sender,registered_name),
      {registered_name,RName}=process_info(Receiver,registered_name),
      io:fwrite("~w received reply message from ~w [~w]\n",[RName,SName,Time]),
      get_feedback()
  after 1500 ->
    {registered_name,Name}=process_info(self(),registered_name),
    io:fwrite("\n~w has received no calls for 1.5 second, ending...\n",[Name]),
    true
  end.

Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.