protobuf-go/internal
Joe Tsai 32e8a52cbf internal/impl: fix race in aberrant message logic
Previously, when aberrantLoadMessageDesc returned it was guaranteed
to have initialized the current message through the use of the done signal.
However, this does not guarantee that the descriptor for a cylic reference
has also finished initialization.

Rather than add more complicated logic to wait until all cyclic references
have finished initializing, just add a global lock for the entire
aberrantLoadMessageDesc function.

This slows down performance, but is easier to reason about.

Change-Id: I4cdae8b955f71ee40fa6979f5a8d548d9749042c
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/184657
Reviewed-by: Damien Neil <dneil@google.com>
2019-07-02 18:39:06 +00:00
..
cmd proto, internal/impl: avoid string->[]byte conversions 2019-06-24 17:41:45 +00:00
descfmt reflect/protoreflect: remove FieldDescriptor.{Oneof,Extendee} methods 2019-06-17 19:43:30 +00:00
descopts internal/filedesc, internal/filetype: initial commit 2019-06-20 02:06:11 +00:00
detrand
encoding proto, internal/impl: avoid string->[]byte conversions 2019-06-24 17:41:45 +00:00
errors all: remove non-fatal UTF-8 validation errors (and non-fatal in general) 2019-06-20 20:55:13 +00:00
fieldnum internal/fieldnum: generate field numbers for the google.protobuf package 2019-03-21 00:57:40 +00:00
filedesc internal/impl: support aberrant enums and messages 2019-07-01 21:18:15 +00:00
filetype reflect/protoregistry: remove Files.Find{Enum,Message,Extension,Service}ByName 2019-06-24 23:47:12 +00:00
flags
impl internal/impl: fix race in aberrant message logic 2019-07-02 18:39:06 +00:00
mapsort all: change module to google.golang.org/protobuf 2019-05-14 17:28:29 +00:00
pragma
scalar
set internal/set: remove Int32s, Int64s, and Strings 2019-04-03 22:53:35 +00:00
testprotos all: remove protoreflect.Message.Len 2019-06-25 21:59:46 +00:00
value reflect/protoreflect: add alternative message reflection API 2019-06-17 17:33:24 +00:00