… | |
… | |
1090 | w.start (w.at + SCROLLBAR_CONTINUOUS_DELAY); |
1090 | w.start (w.at + SCROLLBAR_CONTINUOUS_DELAY); |
1091 | } |
1091 | } |
1092 | } |
1092 | } |
1093 | #endif |
1093 | #endif |
1094 | |
1094 | |
|
|
1095 | #if LINUX_YIELD_HACK |
|
|
1096 | static struct event_handler |
|
|
1097 | { |
|
|
1098 | check_watcher yield_ev; |
|
|
1099 | |
|
|
1100 | void yield_cb (check_watcher &w) |
|
|
1101 | { |
|
|
1102 | usleep (0); |
|
|
1103 | w.stop (); |
|
|
1104 | } |
|
|
1105 | |
|
|
1106 | event_handler () |
|
|
1107 | : yield_ev (this, &event_handler::yield_cb) |
|
|
1108 | { |
|
|
1109 | } |
|
|
1110 | } event_handler; |
|
|
1111 | #endif |
|
|
1112 | |
1095 | bool |
1113 | bool |
1096 | rxvt_term::pty_fill () |
1114 | rxvt_term::pty_fill () |
1097 | { |
1115 | { |
1098 | ssize_t n = cmdbuf_endp - cmdbuf_ptr; |
1116 | ssize_t n = cmdbuf_endp - cmdbuf_ptr; |
1099 | |
1117 | |
… | |
… | |
1114 | cmdbuf_endp += r; |
1132 | cmdbuf_endp += r; |
1115 | return true; |
1133 | return true; |
1116 | } |
1134 | } |
1117 | else if (r < 0 && (errno == EAGAIN || errno == EINTR)) |
1135 | else if (r < 0 && (errno == EAGAIN || errno == EINTR)) |
1118 | { |
1136 | { |
1119 | #if HAVE_SCHED_YIELD |
1137 | #if LINUX_YIELD_HACK |
1120 | if (display->is_local) |
1138 | if (display->is_local) |
1121 | event_handler.cw_yield.start (); |
1139 | event_handler.yield_ev.start (); |
1122 | #endif |
1140 | #endif |
1123 | } |
1141 | } |
1124 | else |
1142 | else |
1125 | { |
1143 | { |
1126 | pty_ev.stop (); |
1144 | pty_ev.stop (); |