diff options
author | lukeg <lukeg> | 2003-02-21 19:01:14 +0000 |
---|---|---|
committer | lukeg <lukeg> | 2003-02-21 19:01:14 +0000 |
commit | e7d48fe500f6ed676ee1b212ebd61408bced1c5b (patch) | |
tree | 11a756c7bb4906f3e186c1cb8331cb7ed27bc69c /src/edit_prof.erl | |
download | ermacs-fork-e7d48fe500f6ed676ee1b212ebd61408bced1c5b.tar.gz |
*** empty log message ***
Diffstat (limited to 'src/edit_prof.erl')
-rw-r--r-- | src/edit_prof.erl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/edit_prof.erl b/src/edit_prof.erl new file mode 100644 index 0000000..08aea4d --- /dev/null +++ b/src/edit_prof.erl @@ -0,0 +1,36 @@ +-module(edit_prof). +-compile(export_all). + +start(Filename) -> + Edit = spawn_link(fun() -> edit:start(Filename) end), + timer:start_link(), + eprof:start(), + profiling = eprof:profile([Edit, scratch]), + ok = eprof:analyse(), + analyse_loop(). + +analyse_loop() -> + receive after 5000 -> + eprof:total_analyse() + end, + analyse_loop(). + +leader() -> + {ok, ProfLog} = file:open("prof.log", [write]), + spawn_link(?MODULE, leader_proc, [ProfLog]). + +leader_proc(Fd) -> + receive + {io_request, From, ReplyAs, {put_chars, C}} -> + file:write(Fd, C), + From ! {io_reply, ReplyAs, ok}; + {io_request, From, ReplyAs, {put_chars, M, F, A}} -> + file:write(Fd, apply(M, F, A)), + From ! {io_reply, ReplyAs, ok}; + {io_request, From, ReplyAs, {get_until, _, _, _}} -> + From ! {io_reply, ReplyAs, eof}; + X -> + file:write(Fd, io_lib:format("Unexpected: ~p~n", [X])) + end, + leader_proc(Fd). + |