Source code

Revision control

Copy as Markdown

Other Tools

This is a clean copy of libevent, vendored via moz.yaml. Update it with:
./mach vendor ipc/chromium/src/third_party/libevent/moz.yaml
That refreshes the upstream sources, preserves the Mozilla-maintained files listed below,
and re-applies patches/prevent-use-of-evsig.patch (an intentional crash that prevents use
of libevent's signal handling code; see bug 1616462). Only libevent's core event loop is
compiled into libxul; see the source list in ipc/chromium/src/third_party/moz.build.
The per-platform event2/event-config.h headers and evconfig-private.h are generated by hand,
are not part of the upstream tree, and are preserved across a re-vendor (the "keep" list in
moz.yaml):
- android/event2/event-config.h
- bsd/event2/event-config.h
- linux/event2/event-config.h
- mac/event2/event-config.h
- solaris/event2/event-config.h
- evconfig-private.h
For a routine version bump, update the EVENT__*VERSION macros in each of these headers to
match the new release, and fold in any EVENT__ macros that upstream added or removed.
When adding a new platform, or if an upstream config change affects these headers,
regenerate the base header by running "./configure" and "make" on the target platform
(event-config.h lands in include/event2/, evconfig-private.h in the root), then re-apply
the Mozilla customizations these headers carry:
- EVENT__SIZEOF_* are kept valid for both 32- and 64-bit builds using __LP64__ (Linux,
Android, and BSD; Mac is 64-bit only). The CHECK_EVENT_SIZEOF assertions in
message_pump_libevent.cc enforce this; a newly added constant needs a new assertion there.
- EVENT__HAVE_ARC4RANDOM and EVENT__HAVE_ARC4RANDOM_BUF in the Linux header are guarded
rather than hardcoded (see bug 1782988).