libevent: fix race in the common case.
commit2bf77c87c4ec9e695bee082bb55851e77d406017
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 9 Apr 2014 23:21:07 +0000 (9 23:21 +0000)
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 9 Apr 2014 23:21:07 +0000 (9 23:21 +0000)
tree4a5dad3f08c97435bf42b431d0e593b925f7f74d
parent38911054e0cbbbba1425a90cb142a2c53cb039ce
libevent: fix race in the common case.

There's a small race in the libevent code: it tests whether the monotonic clock
works and, if so, uses it and skips time-warp detection. However, the flag is a
static and thus causes a race.

We don't want to lose the ability to skip time-warp detection when the system
has a monotonic clock because we expect the vast majority of systems to have
it. But I'm not quite confident enough to remove support for systems without it
yet.

Thus this patch moves the race so that it only triggers on old systems that
don't have a monotonic clock. It's still there because we don't have easy
access to a "once" object this far down and we don't want to add a static init
function. But it will stop triggering the detectors and only arise on very old
systems.

BUG=360449
R=jln@chromium.org

Review URL: https://codereview.chromium.org/231493002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262853 0039d316-1c4b-4281-b951-d872f2087c98
third_party/libevent/README.chromium
third_party/libevent/chromium.patch
third_party/libevent/event.c