:- module test.
:- interface.

:- import_module io.

:- pred main(io::di, io::uo) is cc_multi.

:- implementation.

:- import_module list.
:- import_module string.

main(!IO) :-
    ignore_sigpipe(!IO),
    ( try [io(!IO)]
        %write(duplicate(5000, 'x'), !IO)
        write_string(from_char_list(duplicate(5000, 'x')), !IO)
    then
        true
    catch_any _E ->
        set_exit_status(99, !IO)
    ).

:- pred ignore_sigpipe(io::di, io::uo) is det.
:- pragma foreign_proc("C",
    ignore_sigpipe(_IO0::di, _IO::uo),
    [will_not_call_mercury, promise_pure, thread_safe, tabled_for_io],
"
    signal(SIGPIPE, SIG_IGN);
").
