Revision 58bafe499b2acfa1ee722c4782c782ad50ebc04a authored by Jameson Nash on 21 June 2019, 17:17:53 UTC, committed by Jeff Bezanson on 21 June 2019, 17:17:52 UTC
This should hopefully cover most I/O operations which go through libuv to make them thread-safe.

There is no scaling here, just one big global lock, so expect
worse-than-single-threaded performance if doing I/O on multiple threads (as
compared to doing the same work on one thread). The intention is to handle
performance improvement incrementally later.

It also necessarily redesigns parts of the UDPSocket implementation
to properly handle concurrent (single-threaded) usage, as a necessary
part of making it handle parallel (thread-safe) usage.
1 parent dd56dbf
Raw File
write_base_cache.jl
# Write the sys source cache in format readable by Base._read_dependency_src
cachefile = ARGS[1]
open(cachefile, "w") do io
    for (_, filename) in Base._included_files
        src = read(filename, String)
        write(io, Int32(sizeof(filename)))
        write(io, filename)
        write(io, UInt64(sizeof(src)))
        write(io, src)
    end
    write(io, Int32(0))
end
back to top