ref: 68a437bb6d370781e18ad1b794cc34c21dd5b361
parent: 920b587c66cc2bb5169a117500deb9f8b00127fd
author: Ori Bernstein <ori@eigenstate.org>
date: Thu Dec 21 19:03:07 EST 2017
Lock less in resolver. We could deadlock on init. Oops.
--- a/lib/std/resolve+posixy.myr
+++ b/lib/std/resolve+posixy.myr
@@ -90,6 +90,7 @@
dnscache = mkht()
loadhosts()
loadresolv()
+ initdone = true
;;
unlock(netlck)
;;
@@ -145,9 +146,7 @@
| `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 @@
var h
var lines
- lock(netlck)
match slurp(Resolvfile)
| `Ok d: h = d
| `Err m: -> void
@@ -218,7 +216,6 @@
;;
slfree(lines)
slfree(h)
- unlock(netlck)
}
const addns = {rest