summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2017-12-22 00:03:07 -0800
committerOri Bernstein <ori@eigenstate.org>2017-12-22 00:03:07 -0800
commit68a437bb6d370781e18ad1b794cc34c21dd5b361 (patch)
treeb84d6efdd82e6dc3607bc12910ecd5646e06d712
parent920b587c66cc2bb5169a117500deb9f8b00127fd (diff)
downloadmc-68a437bb6d370781e18ad1b794cc34c21dd5b361.tar.gz
Lock less in resolver.
We could deadlock on init. Oops.
-rw-r--r--lib/std/resolve+posixy.myr5
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