CCxxPositioner::~CCxxPositioner() { Cancel(); // safe when AO inactive as DoCancel not called SESSION_CLOSE_IF_OPEN(iPositioner); SESSION_CLOSE_IF_OPEN(iPositionServer); FreeCallback(); }
void CCxxPositioner::AskPosition(PyObject* aCallback) { if (IsActive()) Cancel(); FreeCallback(); iCallback = aCallback; Py_INCREF(iCallback); iPositioner.NotifyPositionUpdate(iPositionInfo, iStatus); SetActive(); }
void __cdecl dhw_vec_delete(void* p) { tm_thread *t = tm_get_thread(); ++t->suppress_tracing; uint32_t start = PR_IntervalNow(); DHW_ORIGINAL(VEC_DELETE_, getVecDeleteHooker())(p); uint32_t end = PR_IntervalNow(); --t->suppress_tracing; FreeCallback(p, start, end, t); }
void __cdecl dhw_delete(void* p) { tm_thread *t = tm_get_thread(); ++t->suppress_tracing; PRUint32 start = PR_IntervalNow(); DHW_ORIGINAL(DELETE_, getDeleteHooker())(p); PRUint32 end = PR_IntervalNow(); --t->suppress_tracing; FreeCallback(p, start, end, t); }
void __cdecl dhw_free( void* p ) { tm_thread *t = tm_get_thread(); ++t->suppress_tracing; uint32_t start = PR_IntervalNow(); DHW_ORIGINAL(FREE_, getFreeHooker())(p); uint32_t end = PR_IntervalNow(); --t->suppress_tracing; /* FIXME bug 392008: We could race with reallocation of p. */ FreeCallback(p, start, end, t); }