Azat Khuzhin 57d9eec641 Disable signalfd by default
signalfd may behave differently to sigaction/signal, so to avoid
breaking libevent users (like [1], [2]) disable it by default.

  [1]: https://github.com/tmux/tmux/pull/3621
  [2]: https://github.com/tmux/tmux/pull/3626

Also signalfd is not that perfect:
- you need to SIG_BLOCK the signal before
  - blocked signals are not reset on exec
  - blocked signals are allowed to coalesce - so in case of multiple
    signals sent you may get the signal only once (ok for most of the
    signals, but may be a problem for SIGCHLD, though you may call
    waitpid() in a loop or use pidfd)
- and also one implementation problem -
  sigprocmask is unspecified in a multithreaded process

Refs:
- https://lwn.net/Articles/415684/
- https://ldpreload.com/blog/signalfd-is-useless

Refs: https://github.com/libevent/libevent/issues/1460
Refs: #1342 (cc @dmantipov)
2023-07-13 21:21:09 +02:00
2023-07-13 21:21:09 +02:00
2023-07-13 21:21:09 +02:00
2016-10-05 15:47:46 +03:00
2023-02-04 14:56:53 +01:00
2016-10-05 15:47:46 +03:00
2022-06-12 23:58:50 +03:00
2022-06-12 23:58:50 +03:00
2019-02-28 17:48:10 -08:00
2019-02-28 17:48:10 -08:00
2023-04-11 06:44:37 +02:00
2023-07-13 21:21:09 +02:00
2019-03-11 20:11:44 +03:00
2018-12-16 00:51:14 +03:00
2019-04-01 02:42:07 +03:00
2019-10-04 01:30:39 +02:00
2023-05-21 08:47:42 +02:00
2023-05-25 07:05:28 +02:00
2022-11-12 16:42:10 +01:00
2023-07-13 21:21:09 +02:00
2023-05-16 21:20:21 +02:00
2013-02-07 17:55:36 -08:00
2017-01-26 02:36:00 +03:00

libevent logo

CI Coverage Status Join the chat at https://gitter.im/libevent/libevent doxygen

1. BUILDING AND INSTALLATION

CMake (Unix)

mkdir build && cd build
cmake ..     # Default to Unix Makefiles.
make
make verify  # (optional)

See Documentation/Building#Building on Unix using CMake for more information.

CMake (Windows)

Install CMake: https://cmake.org/

md build && cd build
cmake -G "Visual Studio 10" ..   # Or use any generator you want to use. Run cmake --help for a list
cmake --build . --config Release # Or "start libevent.sln" and build with menu in Visual Studio.

See Documentation/Building#Building on Windows for more information.

Package Managers

You can download and install libevent using the vcpkg dependency manager:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install libevent

The libevent port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Autoconf

Note, since 2.2 it is deprecated

./configure
make
make verify   # (optional)
sudo make install

See Documentation/Building#Autoconf for more information.

2. USEFUL LINKS:

For the latest released version of Libevent, see the official website at https://libevent.org/ .

There's a pretty good work-in-progress manual up at http://www.wangafu.net/~nickm/libevent-book/ .

For the latest development versions of Libevent, access our Git repository via

$ git clone https://github.com/libevent/libevent.git

You can browse the git repository online at:

https://github.com/libevent/libevent

To report bugs, issues, or ask for new features:

Patches: https://github.com/libevent/libevent/pulls

OK, those are not really patches. You fork, modify, and hit the "Create Pull Request" button. You can still submit normal git patches via the mailing list.

Bugs, Features [RFC], and Issues: https://github.com/libevent/libevent/issues

Or you can do it via the mailing list.

There's also a libevent-users mailing list for talking about Libevent use and development:

https://archives.seul.org/libevent/users/

3. ACKNOWLEDGMENTS

The following people have helped with suggestions, ideas, code or fixing bugs.

Description
Languages
C 87%
Roff 3.8%
CMake 3.6%
M4 2.5%
Python 2.2%
Other 0.9%