Opened 10 years ago
Closed 10 years ago
#7012 closed Bugs (fixed)
do_epoll_create failes with 'epoll: Function not supported".
Reported by: | Owned by: | chris_kohlhoff | |
---|---|---|---|
Milestone: | To Be Determined | Component: | asio |
Version: | Boost 1.49.0 | Severity: | Problem |
Keywords: | Cc: |
Description
The relevant code: #if defined(EPOLL_CLOEXEC)
int fd = epoll_create1(EPOLL_CLOEXEC);
#else defined(EPOLL_CLOEXEC)
int fd = -1; errno = EINVAL;
#endif defined(EPOLL_CLOEXEC)
if (fd == -1 && errno == EINVAL) {
fd = epoll_create(epoll_size);
....
with glibc 2.13 EPOLL_CLOEXEC is always defined but epoll_create1 may return ENOSYS which causes the code below to fall though. The proposed patch is attached
Attachments (1)
Change History (3)
by , 10 years ago
Attachment: | epoll.patch added |
---|
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [79549]) Merge from trunk:
- Make strand destruction a no-op, to allow strand objects to be destroyed after their associated io_service has been destroyed.
- Use the thread keyword extension when compiling with gcc on linux x86.
- Avoid calling work_finished() if a completion handler creates more work.
- Eliminate redundant call to call_stack::contains(this) when dispatching a completion handler.
- Add support for some newer versions of glibc which provide the epoll_create1 function but always fail with ENOSYS. Fixes #7012
- Use SSE2 load and store fences.
- Throw exception if SSL engine initialisation fails. Fixes #6303
- Fix another regression in buffered_write_stream. Fixes #6310
Note:
See TracTickets
for help on using tickets.
patch