Looking at it briefly it is used on the TransactionPlugin and it accessed through TransactionPlugin::getMutex() with 13 callers.
It looks to be mainly used in IntercepPlugin.cc and AsyncHttpFetch.cc. In Intercept is guarantees that only one thread is producing to the output vio at a time. I didn’t see where in AsyncHttpFetch it was really being used. -Bryan > On Jul 29, 2019, at 9:47 AM, Walt Karas <wka...@verizonmedia.com.INVALID> > wrote: > > Does anyone know why this mutex is needed? > > https://github.com/apache/trafficserver/blob/master/src/tscpp/api/TransactionPlugin.cc#L41 > > Does it only protect the TransactionObjectState object it's in, or does it > protect other data? Under what scenario(s) does it provide protection that > would not be provided by the transaction mutex?