00e7b652b5bb8dbb870ab3fbf2a947ecb3601cef
Three review findings shared one shape: a contract documented in comments but reimplemented at each call site. Each fix collapses the contract into a single named home. - RebaseFrame now rounds up to the least frame >= currentFrame with the matching low 8 bits, so scheduled iso submits never land in the past. The .m bridge trusts the asap flag instead of treating start_frame=0 as ASAP, which also fixes a latent int32-wraparound path. - NewServerService and NewClientService reject empty devices with a clear error instead of starting up exporting nothing. - exportLedger.reservedLocked unifies busy + outstanding lease; AvailableExports and snapshotDeviceState consult it so legacy devlist and control snapshots no longer advertise a leased busid as available. IsBusy renamed to IsReserved across the ExportHost interface and call sites. Two supporting deepenings: - Drop FrameOracle/IsoScheduler; iso submit is now the free EncodeIsoSubmit(currentFrame, ...). The darwin endpoint holds currentFrame func() uint64. - Extract SelectMatches; host_linux and host_darwin Reconcile loops share the match/dedup step.
sing-box
The universal proxy platform.
Documentation
License
Copyright (C) 2022 by nekohasekai <contact-sagernet@sekai.icu>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
In addition, no derivative work may use the name or imply association
with this application without prior consent.
Description
Languages
Go
97.2%
Shell
1.6%
Objective-C
0.8%
Makefile
0.2%
C
0.2%