This removes two Executor::Run dependencies, and requires that all ServerCallbackCall implementations implement the new `RunAsync` method. There's one other known other implementation of ServerCallbackCall that will need to be updated.
We could also support an "inefficient" path that uses the default engine (not implemented here), for all subclasses that do not want to update. As far as anyone is aware, the ServerCallbackCall class was never intended to be subclassed externally.
Closes#36126
* Make generated code compile with -Wunused-parameters
-Wunused-parameters is turned on by -Werror -Wextra. gRPC code
generation creates header files with unused parameters. So let's modify
the generator to not generate code which will make -Wunused-parameters
unhappy.
* Fix unsigned vs signed comparisons and 32 bit string formats
Fix unsigned vs signed comparison warnings.
For 64 bit numbers printed in gRPC, the string formats assume that you
are running on a 64 bit machine. Use inttypes.h to make it portable.
Also, use size_t format strings for the same reason.
* Fix unaligned memory access
cost_entry_ptr has no alignment guarentees that ubsan can find. So it
fails the test with an alignment problem. Use memcopy to read the data
from the pointer to fix this.
* Fix undefined behavior with memcpy and memcmp
Passing in a 0 length piece of data and a null pointer is undefined
behavior. If the length is 0, don't pass it in. This fixes ubsan
failures.
* Clang-format
* Automated change: Fix sanity tests