Description
Currently both the RequestCommon and ResponseCommon hold a member lock of type sync.RWMutex, which gets copied between usage.
E.g. - There's a call to RecordEnqueuedTime(), after which the object is sent over a channel, and then there's a call to GetEnqueuedTime()
Updates:
- Changing the data type to pointer (*sync.RWMutex) will not help as it is an unexported member and thus cannot be initialised by structures using it outside of the declaration package.
- Hence the fix will be to remove the locks altogether, as the "enqueuedTime" write & read is separated by a channel send/receive operation.