> On Nov 4, 2014, at 4:20 PM, Brian Geffon <bri...@apache.org> wrote: > > This should be self explanatory and IMO we should land for 5.2, the > following patch is also attached to TS-1432.
+1 on the API For the implementation, I think you should take reference counting into account. Maybe something along these lines: void TSMutexDestroy(TSMutex m) { ProxyMutex * mutexp = (ProxyMutex *)m; sdk_assert(sdk_sanity_check_null_ptr((void*)mutexp) == TS_SUCCESS); sdk_assert(mutexp->nthread_holding == 0); if (mutexp->refcount() == 0) { mutexp->free(); } else { if (REF_COUNT_OBJ_REFCOUNT_DEC(mutexp) == 0) { mutextp->free(); } } } > > Brian > > > > diff --git a/proxy/InkIOCoreAPI.cc b/proxy/InkIOCoreAPI.cc > index 26f3298..091d7a2 100644 > --- a/proxy/InkIOCoreAPI.cc > +++ b/proxy/InkIOCoreAPI.cc > @@ -189,6 +189,11 @@ TSMutexCreate() > return (TSMutex)mutexp; > } > > +void > +TSMutexDestroy(TSMutex m) { > + ((ProxyMutex *)m)->free(); > +} > + > /* The following two APIs are for Into work, actually, APIs of Mutex > should allow plugins to manually increase or decrease the refcount > of the mutex pointer, plugins may want more control of the creation > diff --git a/proxy/api/ts/ts.h b/proxy/api/ts/ts.h > index 3a6eed6..07a8760 100644 > --- a/proxy/api/ts/ts.h > +++ b/proxy/api/ts/ts.h > @@ -1129,6 +1129,7 @@ extern "C" > /* > -------------------------------------------------------------------------- > Mutexes */ > tsapi TSMutex TSMutexCreate(void); > + tsapi void TSMutexDestroy(TSMutex mutexp); > tsapi void TSMutexLock(TSMutex mutexp); > tsapi TSReturnCode TSMutexLockTry(TSMutex mutexp);