Modify

Ticket #7012 (closed Bugs: fixed)

Opened 22 months ago

Last modified 22 months ago

do_epoll_create failes with 'epoll: Function not supported".

Reported by: Oleg Grunin <oleg00@…> 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

epoll.patch Download (386 bytes) - added by Oleg Grunin <oleg00@…> 22 months ago.
patch

Change History

Changed 22 months ago by Oleg Grunin <oleg00@…>

patch

comment:1 Changed 22 months ago by chris_kohlhoff

(In [79521]) Add support for some newer versions of glibc which provide the epoll_create1 function but always fail with ENOSYS. Refs #7012

comment:2 Changed 22 months ago by chris_kohlhoff

  • Status changed from new to closed
  • Resolution set to fixed

(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
View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.