* Update include
* Clean up `grpc_empty_slice()`
* Clean up `grpc_slice_malloc()`
* Clean up `grpc_slice_unref()`
* Clean up `grpc_slice_ref()`
* Clean up `grpc_slice_split_tail()`
* Clean up `grpc_slice_split_head()`
* Clean up `grpc_slice_sub()`
* Clean up `grpc_slice_buffer_add()`
* Clean up `grpc_slice_buffer_add_indexed()`
* Clean up `grpc_slice_buffer_pop()`
* Clean up `grpc_slice_from_static_buffer()`
* Clean up `grpc_slice_from_copied_buffer()`
* Clean up `grpc_metadata_array_init()`
* Clean up `grpc_metadata_array_destroy()`
* Clean up `gpr_inf_future()`
* Clean up `gpr_time_0()`
* Clean up `grpc_completion_queue_factory_lookup()`
* Clean up `grpc_completion_queue_create()`
* Clean up `grpc_completion_queue_create_for_next()`
* Clean up `grpc_completion_queue_create_for_pluck()`
* Clean up `grpc_completion_queue_shutdown()`
* Clean up `grpc_completion_queue_destroy()`
* Clean up `grpc_completion_queue_pluck()`
* Clean up `gpr_malloc()`
* Clean up `gpr_free()`
* Clean up `grpc_init()`
* Clean up `grpc_shutdown()`
* Clean up `gpr_mu_init()`
* Clean up `gpr_mu_destroy()`
* Clean up `gpr_mu_lock()`
* Clean up `gpr_mu_unlock()`
* Clean up `gpr_cv_init()`
* Clean up `gpr_cv_destroy()`
* Clean up `gpr_cv_wait()`
* Clean up `gpr_cv_signal()`
* Remove `gpr_cv_broadcast()`
It is not possible for such a function to be implemented in a way that
is understood by annotalysis. Mark it deprecated and replace instances
of its use with direct mutex/condvar usage.
Add a bunch of missing thread safety annotations while I'm here.
This reverts commit dc1089a6d1, reversing
changes made to 31843787cc.
This change also includes - Revert "Merge pull request #17932 from soheilhy/gprpp-mutex"
This reverts commit df4b6a763d, reversing
changes made to dc1089a6d1.
Introduce RAII wrappers in the grpc::internal and grpc_core
namespaces, and use them in place of std::mutex and
std::condition_variable.
Note that, since std::mutex is also used by the public
C++ headers we cannot introduce these wrappers in grpc_core.
Also, note that in grpcpp we cannot use gRPC core and vice versa.
So we had to duplicate the code, once using core_codegen_interface
and once using direct calls.