Ignore:
Timestamp:
08/07/09 06:22:22 (3 years ago)
Author:
dom
Message:

Made tester stop and added a run_once to directory_tester.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/directory_tester.erl

    r85 r89  
    44 
    55-module(directory_tester). 
    6 -export ([init/2]). 
    7 -export ([init/1]). 
     6-export ([init/1, init/2]). 
     7-export ([run_once/1, run_once/2]). 
     8 
     9run_once ([Directory, Node]) when is_list (Node) -> 
     10    run_once (Directory, list_to_atom (Node)). 
     11 
     12run_once (Directory, Node) -> 
     13    run (start (Directory, Node)). 
    814 
    915init ([Directory, Node]) when is_list (Node) -> 
     
    1117     
    1218init (Directory, Node) -> 
     19    loop (start (Directory, Node)). 
     20 
     21start (Directory, Node) -> 
    1322    Compiler = spawn_link (compiler, init, [notify_me (compiler), Directory]), 
    1423    Tester = spawn_link (tester, init, [notify_me (tester), Node]), 
    1524    Compiler ! check, 
    1625    Printer = spawn_link (text_printer, init, [standard_io]), 
    17     loop (Compiler, Tester, Printer). 
     26    {Compiler, Tester, Printer}. 
    1827 
    1928notify_me (Atom) -> 
    2029    Parent = self (), 
    2130    fun (Event) -> 
    22             Parent ! {self (), Atom, Event} 
     31            Parent ! {notify, {self (), Atom, Event}} 
    2332    end. 
    2433 
    25 loop (Compiler, Tester, Printer) -> 
     34loop ({Compiler, Tester, Printer}) -> 
    2635    receive 
    2736        stop -> 
    2837            Compiler ! {self (), stop}, 
    29             Tester ! stop; 
    30         {Compiler, compiler, {{binaries, Bs}, {removed, Rs}}} -> 
     38            Tester ! {self (), stop}; 
     39        {notify, {Compiler, compiler, {{binaries, Bs}, {removed, Rs}}}} -> 
    3140            delete (Rs, Tester), 
    3241            run (Bs, Tester), 
    33             loop (Compiler, Tester, Printer); 
    34         Event -> 
     42            loop ({Compiler, Tester, Printer}); 
     43        {notify, Event} -> 
    3544            Printer ! Event, 
    36             loop (Compiler, Tester, Printer) 
     45            loop ({Compiler, Tester, Printer}) 
    3746    after 4000 -> 
    3847            Compiler ! check, 
    39             loop (Compiler, Tester, Printer) 
     48            loop ({Compiler, Tester, Printer}) 
     49    end. 
     50 
     51run ({Compiler, Tester, Printer}) -> 
     52    receive 
     53        {notify, {Compiler, compiler, {{binaries, Bs}, {removed, Rs}}}} -> 
     54            Compiler ! {self (), stop}, 
     55            delete (Rs, Tester), 
     56            run (Bs, Tester), 
     57            Tester ! {self (), stop}, 
     58            run ({Compiler, Tester, Printer}); 
     59        {notify, Event} -> 
     60            Printer ! Event, 
     61            run ({Compiler, Tester, Printer}); 
     62        {Tester, bye} -> 
     63            done; 
     64        {_, bye} -> 
     65            run ({Compiler, Tester, Printer}) 
    4066    end. 
    4167 
Note: See TracChangeset for help on using the changeset viewer.