Lines Matching full:event
189 struct Event { struct
216 explicit Event(Type type, const void *ptr = 0, uptr arg = 0, uptr arg2 = 0) in Event() argument
235 __tsan::atomic_uintptr_t event; // Event* argument
238 void send(Event *ev);
239 void HandleEvent(Event *ev);
242 void ScopedThread::Impl::HandleEvent(Event *ev) { in HandleEvent()
248 case Event::READ: in HandleEvent()
249 case Event::WRITE: { in HandleEvent()
251 if (ev->type == Event::READ) { in HandleEvent()
299 case Event::VPTR_UPDATE: in HandleEvent()
302 case Event::CALL: in HandleEvent()
305 case Event::RETURN: in HandleEvent()
308 case Event::MUTEX_CREATE: in HandleEvent()
311 case Event::MUTEX_DESTROY: in HandleEvent()
314 case Event::MUTEX_LOCK: in HandleEvent()
317 case Event::MUTEX_TRYLOCK: in HandleEvent()
320 case Event::MUTEX_UNLOCK: in HandleEvent()
323 case Event::MUTEX_READLOCK: in HandleEvent()
326 case Event::MUTEX_TRYREADLOCK: in HandleEvent()
329 case Event::MUTEX_READUNLOCK: in HandleEvent()
332 case Event::MEMCPY: in HandleEvent()
335 case Event::MEMSET: in HandleEvent()
351 Event *ev = in ScopedThreadCallback()
352 (Event *)atomic_load(&impl->event, __tsan::memory_order_acquire); in ScopedThreadCallback()
357 if (ev->type == Event::SHUTDOWN) { in ScopedThreadCallback()
358 atomic_store(&impl->event, 0, __tsan::memory_order_release); in ScopedThreadCallback()
362 atomic_store(&impl->event, 0, __tsan::memory_order_release); in ScopedThreadCallback()
368 void ScopedThread::Impl::send(Event *e) { in send()
372 CHECK_EQ(atomic_load(&event, __tsan::memory_order_relaxed), 0); in send()
373 atomic_store(&event, (uintptr_t)e, __tsan::memory_order_release); in send()
374 while (atomic_load(&event, __tsan::memory_order_acquire) != 0) in send()
383 atomic_store(&impl_->event, 0, __tsan::memory_order_relaxed); in ScopedThread()
397 Event event(Event::SHUTDOWN); in ~ScopedThread() local
398 impl_->send(&event); in ~ScopedThread()
414 Event event(is_write ? Event::WRITE : Event::READ, addr, size, in Access() local
417 event.ExpectReport(__tsan::ReportTypeRace); in Access()
418 impl_->send(&event); in Access()
424 Event event(Event::VPTR_UPDATE, vptr.loc(), (uptr)new_val.loc()); in VptrUpdate() local
426 event.ExpectReport(__tsan::ReportTypeRace); in VptrUpdate()
427 impl_->send(&event); in VptrUpdate()
431 Event event(Event::CALL, (void*)((uintptr_t)pc)); in Call() local
432 impl_->send(&event); in Call()
436 Event event(Event::RETURN); in Return() local
437 impl_->send(&event); in Return()
441 Event event(Event::MUTEX_CREATE, &m); in Create() local
442 impl_->send(&event); in Create()
446 Event event(Event::MUTEX_DESTROY, &m); in Destroy() local
447 impl_->send(&event); in Destroy()
451 Event event(Event::MUTEX_LOCK, &m); in Lock() local
452 impl_->send(&event); in Lock()
456 Event event(Event::MUTEX_TRYLOCK, &m); in TryLock() local
457 impl_->send(&event); in TryLock()
458 return event.res; in TryLock()
462 Event event(Event::MUTEX_UNLOCK, &m); in Unlock() local
463 impl_->send(&event); in Unlock()
467 Event event(Event::MUTEX_READLOCK, &m); in ReadLock() local
468 impl_->send(&event); in ReadLock()
472 Event event(Event::MUTEX_TRYREADLOCK, &m); in TryReadLock() local
473 impl_->send(&event); in TryReadLock()
474 return event.res; in TryReadLock()
478 Event event(Event::MUTEX_READUNLOCK, &m); in ReadUnlock() local
479 impl_->send(&event); in ReadUnlock()
484 Event event(Event::MEMCPY, dst, (uptr)src, size); in Memcpy() local
486 event.ExpectReport(__tsan::ReportTypeRace); in Memcpy()
487 impl_->send(&event); in Memcpy()
492 Event event(Event::MEMSET, dst, val, size); in Memset() local
494 event.ExpectReport(__tsan::ReportTypeRace); in Memset()
495 impl_->send(&event); in Memset()