@@ -52,6 +52,7 @@ function update_and_close_viewers!(
52
52
@sync for wsᵢ in ws_to_update_and_close
53
53
isopen (wsᵢ. io) && @spawn begin
54
54
try
55
+ redirect_stderr ()
55
56
HTTP. WebSockets. send (wsᵢ, " update" )
56
57
catch
57
58
end
@@ -63,6 +64,7 @@ function update_and_close_viewers!(
63
64
@sync for wsi in ws_to_update_and_close
64
65
isopen (wsi. io) && @spawn begin
65
66
try
67
+ redirect_stderr ()
66
68
wsi. writeclosed = wsi. readclosed = true
67
69
close (wsi. io)
68
70
catch
@@ -616,6 +618,15 @@ current directory. (See also [`example`](@ref) for an example folder).
616
618
)
617
619
end
618
620
621
+ old_logger = global_logger ()
622
+ old_stderr = stderr
623
+ global_logger (
624
+ EarlyFilteredLogger (
625
+ log -> log. _module != = HTTP. Servers,
626
+ global_logger ()
627
+ )
628
+ )
629
+
619
630
server, port = get_server (host, port, req_handler)
620
631
host_str = ifelse (host == string (Sockets. localhost), " localhost" , host)
621
632
url = " http://$host_str :$port "
@@ -624,6 +635,7 @@ current directory. (See also [`example`](@ref) for an example folder).
624
635
)
625
636
626
637
launch_browser && open_in_default_browser (url)
638
+
627
639
# wait until user interrupts the LiveServer (using CTRL+C).
628
640
try
629
641
counter = 1
@@ -673,6 +685,11 @@ current directory. (See also [`example`](@ref) for an example folder).
673
685
reset_ws_interrupt ()
674
686
println (" ✓" )
675
687
end
688
+ # given that LiveServer is interrupted via an InterruptException, we have
689
+ # to be extra careful that things are back as they were before, otherwise
690
+ # there's a high risk of the disgusting broken pipe error...
691
+ redirect_stderr (old_stderr)
692
+ global_logger (old_logger)
676
693
return nothing
677
694
end
678
695
@@ -694,6 +711,7 @@ function get_server(
694
711
incr >= 10 && @error " couldn't find a free port in $incr tries"
695
712
try
696
713
server = HTTP. listen! (host, port; readtimeout= 0 , verbose= - 1 ) do http:: HTTP.Stream
714
+ redirect_stderr ()
697
715
if HTTP. WebSockets. isupgrade (http. message)
698
716
# upgrade to websocket and add to list of viewers and keep open
699
717
# until written to
0 commit comments