• jam@chromium.org's avatar
    Fix subtle bug with the in-process utility thread usage in unit tests. · c514acf5
    jam@chromium.org authored
    Recently this started flaking. The problem was that the exit manager (or the shadowing one if it was there) would run before the in-process utility thread shutdown. Since the thread was holding on to g_one_utility_thread_lock, the exit manager would try to destroy that LazyInstance but it would fail because the lock was still owned by a different thread.
    
    The fix is to ensure that the utility thread is gone. This is done by waiting for all UtilityProcessHost objects to get destructed. This wasn't happening before because the tests would just wait for their app-specific IPC from the utility thread, which is dispatched before the OnChannelError in ChildProcessHost ends up killing the UtilityProcessHost.
    
    BUG=316919
    R=scottmg@chromium.org
    
    Review URL: https://codereview.chromium.org/128993004
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243793 0039d316-1c4b-4281-b951-d872f2087c98
    c514acf5
test_utils.h 8.44 KB