4coder freezes in file selector

Hello, all. New (paid) user of 4coder, but it seems unusable.

Upon launch, I can edit the default buffer just fine. Most things seem to work just fine, initially.

When I try to load a file (via ctrl+o), everything also seems mostly ok, until I enter 3 characters. After trying to navigate down the directory listing or narrow my options down by 3 keystrokes, 4coder becomes entirely unresponsive and CPU taken by the application goes to about 12-16%.



Is this a known issue? Are there any known workarounds?

When I attach to the process with strace at the time of the frozen state, I get a large number of the following:

ioctl(5, DRM_IOCTL_I915_GEM_EXECBUFFER2, 0x7ffed03d0a90) = 0
ioctl(5, DRM_IOCTL_I915_GEM_WAIT or DRM_IOCTL_RADEON_GEM_OP, 0x7ffed03d0a40) = 0
ioctl(5, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffed03d0a14) = 0
ioctl(5, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffed03d09f4) = 0
ioctl(5, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffed03d09d4) = 0
ioctl(5, DRM_IOCTL_I915_GEM_BUSY, 0x7ffed03d0900) = 0
ioctl(5, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffed03d0970) = 0
ioctl(5, DRM_IOCTL_I915_GEM_BUSY, 0x7ffed03d0900) = 0
ioctl(5, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffed03d0970) = 0
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{iov_base="\222\1\22\0\2\0\0\2\32\0\0\2\204S\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=72}], 1) = 72
timerfd_gettime(9, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}) = 0
timerfd_settime(9, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=636000}}, NULL) = 0
epoll_wait(10, [{EPOLLIN, {u32=0, u64=17179869184}}], 16, -1) = 1
read(9, "\1\0\0\0\0\0\0\0", 8) = 8
read(9, 0x7ffed03d0d70, 8) = -1 EAGAIN (Resource temporarily unavailable)
read(3, 0x7ffed03d0450, 16) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7fcdff67c1f4, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x76fca0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x76fd7c, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)



Edited by daxorid on Reason: added screenshot
This looks like the bug in this thread: Performance on Linux 64-bit.

The original poster suggests a workaround:
EverCursed
To offer another clue (or make things more confusing), the workaround to this seems to be to move the mouse around above the list. As soon as the mouse moves (and forces the app to start redrawing the list, I assume), the app starts to catch up and do work scrolling through the list.


You can report the issue in the 4coder issue tracker on github.