Subject: Re: dynamic sysctl
To: David Young <firstname.lastname@example.org>
From: Greywolf <email@example.com>
Date: 11/15/2003 12:22:49
Thus spake David Young ("DY> ") sometime Today...
DY> I am not sure I understand how sysctlnametomib works. Tell me if this is
DY> right: my program calls sysctlnametomib("/a/b/c"). sysctlnametomib uses
DY> sysctl to record the version number stored at the top of the tree. It
DY> resolves "/a/b" to 13.27 using two sysctl calls. In the mean time, the
DY> kernel deletes the path "/a/b/d", which increases the version number
DY> at 13.27, at 13, and at the root. Now, sysctlnametomib resolves "c"
DY> at 13.27 to 4. It compares the version number at the root with the
DY> version number it recorded. Finding that the versions are different,
DY> it sets errno to EAGAIN (say) and returns -1. My program has to try
DY> again to resolve /a/b/c to a number.
DY> Assuming that is the way it works, I will worry that my program will
DY> sometimes have to try again forever to resolve "/a/b/c" to a numeric path.
Perhaps there should be a lock of some sort...?
NetBSD: Beyond Windows