You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The issue is within _dispatch_muxnote_create of the epoll backend, this code hits the DISPATCH_INTERNAL_CRASH on line src/event/event_epoll.c:200.
Adding a case for DISPATCH_EVFILT_CUSTOM_ADD in that switch statement solves the crash, but I don't actually know what it is supposed to do if I add it. Limited testing (with actual event handlers) did not uncover any obvious bugs for me with no code in the case.
Installing a kqueue/kevent compatibility library and changing the build to use the kevent backend also works on my linux installation. I guess the epoll backend should be fixed, but in addition, I would like to propose a build time option to switch the backend on linux systems that have kqueue/kevent.
(DISPATCH_SOURCE_TYPE_DATA_OR has the same issue.)
The text was updated successfully, but these errors were encountered:
Environment
Fedora 27 with Clang 5.0.1
Additional Detail from JIRA
md5: fe128027ec00cf3b8931697f12b72939
Issue Description:
The following C program will crash for me:
#include <dispatch/dispatch.h>
int main(int argc, char **argv, char **envp) {
{{ dispatch_queue_t main_queue = dispatch_get_main_queue();}}
{{ dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_DATA_ADD, 0, 0, main_queue);}}
{{ dispatch_resume(source);}}
{{ dispatch_main();}}
};
The issue is within _dispatch_muxnote_create of the epoll backend, this code hits the DISPATCH_INTERNAL_CRASH on line src/event/event_epoll.c:200.
Adding a case for DISPATCH_EVFILT_CUSTOM_ADD in that switch statement solves the crash, but I don't actually know what it is supposed to do if I add it. Limited testing (with actual event handlers) did not uncover any obvious bugs for me with no code in the case.
Installing a kqueue/kevent compatibility library and changing the build to use the kevent backend also works on my linux installation. I guess the epoll backend should be fixed, but in addition, I would like to propose a build time option to switch the backend on linux systems that have kqueue/kevent.
(DISPATCH_SOURCE_TYPE_DATA_OR has the same issue.)
The text was updated successfully, but these errors were encountered: