234
236
global uv_jl_writecb = cglobal(:jl_uv_writecb)
235
237
global uv_jl_writecb_task = cglobal(:jl_uv_writecb_task)
236
238
global uv_eventloop = ccall(:jl_global_event_loop, Ptr{Void}, ())
237
global STDIN = init_stdio(ccall(:jl_stdin_stream ,Ptr{Void},()),0)
238
global STDOUT = init_stdio(ccall(:jl_stdout_stream,Ptr{Void},()),1)
239
global STDERR = init_stdio(ccall(:jl_stderr_stream,Ptr{Void},()),2)
239
global STDIN = init_stdio(ccall(:jl_stdin_stream ,Ptr{Void},()))
240
global STDOUT = init_stdio(ccall(:jl_stdout_stream,Ptr{Void},()))
241
global STDERR = init_stdio(ccall(:jl_stderr_stream,Ptr{Void},()))
240
242
reinit_displays() # since Multimedia.displays uses STDOUT as fallback
514
516
## pipe functions ##
515
517
malloc_pipe() = c_malloc(_sizeof_uv_named_pipe)
519
_link_pipe(read_end::Ptr{Void},write_end::Ptr{Void}) = uv_error("pipe_link",ccall(:uv_pipe_link, Int32, (Ptr{Void}, Ptr{Void}), read_end, write_end))
516
521
function link_pipe(read_end::Ptr{Void},readable_julia_only::Bool,write_end::Ptr{Void},writable_julia_only::Bool,readpipe::AsyncStream,writepipe::AsyncStream)
517
522
#make the pipe an unbuffered stream for now
518
523
#TODO: this is probably not freeing memory properly after errors
519
524
uv_error("init_pipe",ccall(:jl_init_pipe, Cint, (Ptr{Void},Int32,Int32,Int32,Any), read_end, 0, 1, readable_julia_only, readpipe))
520
525
uv_error("init_pipe(2)",ccall(:jl_init_pipe, Cint, (Ptr{Void},Int32,Int32,Int32,Any), write_end, 1, 0, writable_julia_only, writepipe))
521
uv_error("pipe_link",ccall(:uv_pipe_link, Int32, (Ptr{Void}, Ptr{Void}), read_end, write_end))
526
_link_pipe(read_end,write_end)
524
529
function link_pipe(read_end::Ptr{Void},readable_julia_only::Bool,write_end::Ptr{Void},writable_julia_only::Bool)
525
530
uv_error("init_pipe",ccall(:jl_init_pipe, Cint, (Ptr{Void},Int32,Int32,Int32,Ptr{Void}), read_end, 0, 1, readable_julia_only, C_NULL))
526
531
uv_error("init_pipe(2)",ccall(:jl_init_pipe, Cint, (Ptr{Void},Int32,Int32,Int32,Ptr{Void}), write_end, 1, 0, writable_julia_only, C_NULL))
527
uv_error("pipe_link",ccall(:uv_pipe_link, Int32, (Ptr{Void}, Ptr{Void}), read_end, write_end))
532
_link_pipe(read_end,write_end)
530
function link_pipe(read_end2::Pipe,readable_julia_only::Bool,write_end::Ptr{Void},writable_julia_only::Bool)
531
if read_end2.handle == C_NULL
532
read_end2.handle = malloc_pipe()
535
function link_pipe(read_end::Pipe,readable_julia_only::Bool,write_end::Ptr{Void},writable_julia_only::Bool)
536
if read_end.handle == C_NULL
537
read_end.handle = malloc_pipe()
534
link_pipe(read_end2.handle,readable_julia_only,write_end,writable_julia_only,read_end2,read_end2)
535
read_end2.status = StatusOpen
539
init_pipe!(read_end; readable = true, writable = false, julia_only = readable_julia_only)
540
uv_error("init_pipe",ccall(:jl_init_pipe, Cint, (Ptr{Void},Int32,Int32,Int32,Any), write_end, 1, 0, writable_julia_only, read_end))
541
_link_pipe(read_end.handle,write_end)
542
read_end.status = StatusOpen
537
544
function link_pipe(read_end::Ptr{Void},readable_julia_only::Bool,write_end::Pipe,writable_julia_only::Bool)
538
545
if write_end.handle == C_NULL
539
546
write_end.handle = malloc_pipe()
541
link_pipe(read_end,readable_julia_only,write_end.handle,writable_julia_only,write_end,write_end)
548
uv_error("init_pipe",ccall(:jl_init_pipe, Cint, (Ptr{Void},Int32,Int32,Int32,Any), read_end, 0, 1, readable_julia_only, write_end))
549
init_pipe!(write_end; readable = false, writable = true, julia_only = writable_julia_only)
550
_link_pipe(read_end,write_end.handle)
542
551
write_end.status = StatusOpen
544
553
function link_pipe(read_end::Pipe,readable_julia_only::Bool,write_end::Pipe,writable_julia_only::Bool)