ST appears to compile and run fine on 64 bit and 32 bit platorms, except on 32 
bit (i686/pentium3), typing is extremely slow.

Using strace/ltrace on the latest stable 0.5, I see some hangups on the 
"select" call.  Using the git version, I now see select substituted with 
pselect.  The following is a paste of strace output, typing 'j' within the 
terminal.  With the pselect, the slow typing still occurs on i686 32 bit.

Sorry I keep forgetting to adjust line lenght when using strace, but it looks 
somewhat obvious to me what is happening, getting "EAGAIN (Resource temporarily 
unavailable)", while the pselect call only handles EINTR errno condition? 


$ strace ./st

--- Snip ---
read(4, "j", 8192)                      = 1
clock_gettime(CLOCK_MONOTONIC, {5734, 304463635}) = 0
pselect6(5, [3 4], NULL, NULL, {0, 8000000}, {NULL, 8}) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {5734, 314120972}) = 0
recvmsg(3, 0xbfb89450, 0)               = -1 EAGAIN (Resource temporarily 
unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, 
[{"\212\32\v\0\1\0\1\0\7\0\200\0\0\0\0\0\0\0\377\377\2\0\36\0\2\3\16\0\0\0\36\0"...,
 672}, {NULL, 0}, {"", 0}], 3) = 672
recvmsg(3, 0xbfb89410, 0)               = -1 EAGAIN (Resource temporarily 
unavailable)
pselect6(5, [3 4], NULL, NULL, NULL, {NULL, 8}) = 1 (in [3])
clock_gettime(CLOCK_MONOTONIC, {5735, 522717105}) = 0
recvmsg(3, {msg_name(0)=NULL, 
msg_iov(1)=[{"\2,g\2a\204W\0\1\1\0\0\1\0\200\0\0\0\0\0|\1R\1{\1B\1\0\0\1\0", 
4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, 0xbfb89450, 0)               = -1 EAGAIN (Resource temporarily 
unavailable)
write(4, "j", 1)                        = 1
recvmsg(3, 0xbfb89450, 0)               = -1 EAGAIN (Resource temporarily 
unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, 
[{"\212\32\7\0\1\0\1\0\7\0\200\0\0\0\0\0\0\0\377\377\270\0\36\0\7\0\16\0\212\6\5\0"...,
 236}, {NULL, 0}, {"", 0}], 3) = 236
recvmsg(3, 0xbfb89410, 0)               = -1 EAGAIN (Resource temporarily 
unavailable)
pselect6(5, [3 4], NULL, NULL, {0, 8000000}, {NULL, 8}) = 1 (in [4], left {0, 
7993016})
read(4, "j", 8192)                      = 1
clock_gettime(CLOCK_MONOTONIC, {5735, 529161383}) = 0
pselect6(5, [3 4], NULL, NULL, {0, 8000000}, {NULL, 8}) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {5735, 539123236}) = 0
recvmsg(3, 0xbfb89450, 0)               = -1 EAGAIN (Resource temporarily 
unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, 
[{"\212\32\v\0\1\0\1\0\7\0\200\0\0\0\0\0\0\0\377\377\2\0\36\0\2\3\16\0\0\0\36\0"...,
 672}, {NULL, 0}, {"", 0}], 3) = 672
recvmsg(3, 0xbfb89410, 0)               = -1 EAGAIN (Resource temporarily 
unavailable)
pselect6(5, [3 4], NULL, NULL, NULL, {NULL, 8}
--- Snip ---


And not to complain as DWM has been my favorite desktop for the past years, but 
did you notice st getting a bit large? ;-)  Granted, XFT font rasterizing and 
color effects are somewhat needed.



-- 
Roger
http://rogerx.freeshell.org/

Reply via email to