Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

58 lines (41 sloc) 1.433 kb
%% Test setup for issue 7. See https://github.com/Eonblast/Emysql/issues/7
%% Use it to kill and restart the mysql server underneath and see what happens.
%% To use this script, move this file to Emysql root, build Emysql, and do:
%% $ erlc issue7.erl && erl -pa ./ebin -s issue7 run -s init stop -noshell
-module(issue7).
-export([run/0,do/0]).
run() ->
crypto:start(),
application:start(emysql),
emysql:add_pool(hello_pool, 1,
"hello_username", "hello_password", "localhost", 3306,
"hello_database", utf8),
Pid = spawn(?MODULE, do, []),
Mref = erlang:monitor(process, Pid),
wait(Pid, Mref).
do() ->
io:format("enter do~n"),
io:format("delete do~n"),
emysql:execute(hello_pool,
<<"delete from hello_table">>),
io:format("insert do~n"),
emysql:execute(hello_pool,
<<"INSERT INTO hello_table SET hello_text = 'Hello World!'">>),
Result = emysql:execute(hello_pool,
<<"select hello_text from hello_table">>),
io:format("Result ~n~p~n", [Result]),
receive after 10000 -> nil end,
do().
wait(Pid, Mref) ->
case is_process_alive(Pid) of
true ->
io:format("~p is alive~n", [Pid]),
receive after 1000 -> nil end,
wait(Pid, Mref);
_ ->
io:format("~p is gone, new spawn: ", [Pid]),
NewPid = spawn(?MODULE, do, []),
NewMref = erlang:monitor(process, NewPid),
io:format("~p~n", [NewPid]),
wait(NewPid, NewMref)
end.
Jump to Line
Something went wrong with that request. Please try again.