Skip to content

fix multiple double-frees in async client#79

Open
stsp wants to merge 1 commit intohaiwen:masterfrom
stsp:async_fix
Open

fix multiple double-frees in async client#79
stsp wants to merge 1 commit intohaiwen:masterfrom
stsp:async_fix

Conversation

@stsp
Copy link
Copy Markdown

@stsp stsp commented Apr 4, 2026

Currently the async client is broken by commit 55001da
Every line of that commit is wrong: it frees the async data that
is saved by async_send() callback for later use in async recv. Also it frees fstr
which is also freed in transport_send() of demo-async-client.c.

This patch undoes most of commit 55001da
It is also an option to do the plain revert, but, considering that it is already 10 years old,
I decided that freeing of fstr in searpc_client_async_call_v() can be left as is now, and instead,
this patch removes it from transport_send() of demo-async-client.c.

With this patch, the async APIs can be used again.

Currently the async client is broken by commit 55001da
Every line of that commit is wrong: it frees the async data
that is saved by async_send() callback for later use in async
recv. Also it frees `fstr` which is also freed in transport_send()
of demo-async-client.c.

This patch undoes most of commit 55001da
It is also an option to do the plain revert, but, considering that
it is already 10 years old, I decided that freeing of `fstr` in
searpc_client_async_call_v() can be left as is now, and instead,
this patch removes it from transport_send() of demo-async-client.c.

With this patch, the async APIs can be used again.
stsp added a commit to dosemu2/dosemu2 that referenced this pull request Apr 4, 2026
Unfortunately this doesn't work currently due to:
haiwen/libsearpc#79

Also the speed-up heavily depends on the overall system load,
and decreases only on a "quiet" system. Perhaps an RPC server
needs a realtime prio to avoid hickups...
stsp added a commit to dosemu2/dosemu2 that referenced this pull request Apr 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant