Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Server code reorganization & consolidation, fixes some erroneous behaviour and hopefully makes future maintenance easier:
lo_servers_wait
internally for all calls topoll
/select
, i.e. with a 0 timeout forlo_server_recv
. This removes a bunch of duplicate codepoll
/select
again if we already know something was receivedlo_server_wait
andlo_servers_wait
if returning early due to error rather than msg received or full timeoutlo_server_recv
if a received message was queued for future dispatchAdds a configure/cmake option for disabling
poll
if desired since testing shows a substantial performance penalty for using this code path in liblo (possibly due to thealloca
?). On MacOS/M2 Pro, thetestspeed
test in libmapper completes in ~4.3 seconds using the liblopoll
path and ~2.6 seconds usingselect
.