• Dominik Inführ's avatar
    [logging] Make Log::IsEnabled() atomic · 41d2e5c9
    Dominik Inführ authored
    With concurrent allocation background threads invoke Log::IsEnabled()
    as well. Fix data race here by making is_enabled_ atomic, such that
    IsEnabled() remains cheap.
    
    After locking the mutex in MessageBuilder, IsEnabled() needs to be
    checked again in case an old value was read. Otherwise we might log
    even though logging was already disabled on another thread.
    
    The other direction where a log message isn't logged is deemed
    acceptable.
    
    Bug: v8:10315
    Change-Id: I32c9dd2e9879fbdb4ca94e080a16ddd875de7c30
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362948
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69495}
    41d2e5c9
log.cc 80.1 KB