create_dir_all
performs a quadradic number of system calls
#51
Labels
good first issue
Good for newcomers
create_dir_all
performs a quadradic number of system calls
#51
create_dir_all
uses the algorithm fromlibstd
for recursively creating all components. However,cap-primitives
'mkdir
function performs a system call per path component per call, so calling it once per path component leads to a quadratic number of system calls.We should add a
create_dir_all
function incap-primitives
which, for each path component, creates a directory for that component (ignoring aio::ErrorKind::AlreadyExists
error), opens the newly created directory, and then uses the resulting handle as the base for handling the next component.Similar to
open_manually
, it should handle..
components by keeping a stack of handles as it goes, so that it can simply pop an entry from that stack to ascend to the parent.And then, the
cap-std
andcap-async-std
create_dir_all
routines can use it.The text was updated successfully, but these errors were encountered: