- Avoid atomics in more places.
- Remove the per-descriptor mutex, and just use filedesc_t::fd_lock.
It was only being used to synchronize close, and in any case we needed
to take fd_lock to free the descriptor slot.
- Optimize certain paths for the <NDFDFILE case.
- Sprinkle more comments and assertions.
- Cache more stuff in filedesc_t.
- Fix numerous minor bugs spotted along the way.
- Restructure how the open files array is maintained, for clarity and so
that we can eliminate the membar_consumer() call in fd_getfile(). This is
mostly syntactic sugar; the main functional change is that fd_nfiles now
lives alongside the open file array.
Some measurements with libmicro:
- simple file syscalls are like close() are between 1 to 10% faster.
- some nice improvements, e.g. poll(1000) which is ~50% faster.
characters and we allocated only 1024.
While here:
- use snprintf to prevent this from happening in the future.
- don't close fd twice on error.
- pass unsigned char to ctype.h functions.
we don't have. Replace ".Dd $Mdocdate" with ".Dd Month Day Year" so
that the date comes out right when man pages get built. This will
doubtless need hand conflict resolution whenever these pages are
re-imported.
Note that it would be interesting to have some similar facility for
NetBSD, but I don't think a custom rcs keyword is the right thing --
maybe we can teach groff to parse $Date$
file, we conditionally define MIN and MAX.)
Including sys/param.h unconditionally like this seems unportable (in
view of the fact that file is built as a host tool), but other parts of
the file sources already include sys/param.h, so this change doesn't
make it worse.
This might fix PR 40539 from Brad Parker.
due to a "-u" option.
(There is a bug report to the subcect in ntp's bugzilla, listed
as "closed", almost two years old. Don't know what happed. My patch
is not derived from that one because the code changed.)
PR# 39364: wpa_cli scan_results shows '0' signal level
Use rssi for level (instead of qual) in scan results, following examples
set by the wpa_supplicant ndis and iphone drivers.