Commit Graph

13 Commits

Author SHA1 Message Date
Craig Tiller ea389c00c2
Adjust include order per style guide (#27175)
Introduce clang-format configuration to sort includes closer to our rules.
2021-09-08 12:14:44 -07:00
Tamir Duberstein 34338e5798
Avoid undefined behavior in pthread TLS (#26999)
See code commentary for an explanation.

Add an additional constructor to allow `log_linux.cc` to compile with
GPR_PTHREAD_TLS. Without it:

```
../../third_party/grpc/src/core/lib/gpr/log_linux.cc:78:33: error: no viable conversion from 'int' to 'grpc_core::PthreadTlsImpl<long>'
  static GPR_THREAD_LOCAL(long) tid = 0;
                                ^     ~
../../third_party/grpc/src/core/lib/gpr/tls.h:64:3: note: candidate constructor not viable: no known conversion from 'int' to 'const grpc_core::PthreadTlsImpl<long> &' for 1st argument
  PthreadTlsImpl(const PthreadTlsImpl&) = delete;
  ^
1 error generated.
```
2021-08-12 19:25:38 -07:00
Tamir Duberstein 00c03c55ff
Implement type safety for TLS (#26942)
* Implement type safety for TLS

This is mostly free when compiler support is available, but requires
careful templating when implemented using pthread.

Significantly slimmed the tls.h interface; it now only defines the "TLS
keyword" for each supported compiler, delegating enforcement of correct
usage (i.e. must be static) to the compiler itself.

Implemented implicit conversion for the pthread wrapper so it can be
used (mostly) the same as native support. Notable exception to this is
that static_cast<void*> is needed when printing a pointer stored in TLS
as %p.

* Use GPR_THREAD_LOCAL macros consistently
2021-08-11 13:24:26 -07:00
Esun Kim 9bd7c4917a Fix unused-parameter warning 2021-01-19 18:18:09 -08:00
Mark D. Roth 27e1c1c56d clang-tidy: enable google-readability-braces-around-statements 2020-11-06 13:41:44 -08:00
Esun Kim 6ae8463500 Fix by modernize-make-unique 2020-10-16 13:30:56 -07:00
Vijay Pai 32a33ae2b1 Properly set thread-local variable indicating nonblocking test 2020-03-27 13:14:36 -07:00
Karthik Ravi Shankar 603d014f0e Changes to fold credentials into grpc_impl from grpc 2019-04-23 13:54:26 -07:00
yang-g e75fc243da change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
Vijay Pai cdddc8ce42 Desneak client unary call, avoid Hyrum's Law (used for 1-thread simplicity) 2018-03-20 08:46:28 -07:00
Vijay Pai c90a85649b Change grpc++ references in names to grpcpp 2018-03-08 22:04:59 -08:00
Vijay Pai dd57cb5949 Empty out all tests if GRPC_POSIX_SOCKET is not defined 2018-02-09 15:47:44 -08:00
Vijay Pai 132efa0c9b Add non-blocking test 2018-02-09 15:42:05 -08:00