diff options
author | Ori Bernstein <ori@eigenstate.org> | 2017-12-22 00:03:07 -0800 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2017-12-22 00:03:07 -0800 |
commit | 68a437bb6d370781e18ad1b794cc34c21dd5b361 (patch) | |
tree | b84d6efdd82e6dc3607bc12910ecd5646e06d712 | |
parent | 920b587c66cc2bb5169a117500deb9f8b00127fd (diff) | |
download | mc-68a437bb6d370781e18ad1b794cc34c21dd5b361.tar.gz |
Lock less in resolver.
We could deadlock on init. Oops.
-rw-r--r-- | lib/std/resolve+posixy.myr | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/std/resolve+posixy.myr b/lib/std/resolve+posixy.myr index 6aee9d7..bd053f5 100644 --- a/lib/std/resolve+posixy.myr +++ b/lib/std/resolve+posixy.myr @@ -90,6 +90,7 @@ const resolverec = {host, tl dnscache = mkht() loadhosts() loadresolv() + initdone = true ;; unlock(netlck) ;; @@ -145,9 +146,7 @@ const loadhosts = { | `Some (ip, rest): match ipparse(ip) | `Some addr: - lock(netlck) addhosts(addr, ip, rest) - unlock(netlck) | `None: /* invalid addresses are ignored: we don't want to break stuff @@ -194,7 +193,6 @@ const loadresolv = { var h var lines - lock(netlck) match slurp(Resolvfile) | `Ok d: h = d | `Err m: -> void @@ -218,7 +216,6 @@ const loadresolv = { ;; slfree(lines) slfree(h) - unlock(netlck) } const addns = {rest |