[core/input] Ugly hack for responsiveness
Somehow, the fix in the previous commit didn't work, it seems that sometimes epoll() doesn't trigger, even if there is more data in sys.stdin. I'm sure I'm doing something horribly wrong here. Anyhow, as a quick fix, check for the open bracket to be sure to not buffer the first event too long.
This commit is contained in:
parent
f6be25bc73
commit
220bb9bf60
1 changed files with 4 additions and 2 deletions
|
@ -18,15 +18,17 @@ def read_input(inp):
|
||||||
"""Read i3bar input and execute callbacks"""
|
"""Read i3bar input and execute callbacks"""
|
||||||
epoll = select.epoll()
|
epoll = select.epoll()
|
||||||
epoll.register(sys.stdin.fileno(), select.EPOLLIN)
|
epoll.register(sys.stdin.fileno(), select.EPOLLIN)
|
||||||
|
f = open("/tmp/bee.log", "a")
|
||||||
while inp.running:
|
while inp.running:
|
||||||
for thread in threading.enumerate():
|
for thread in threading.enumerate():
|
||||||
if thread.name == "MainThread" and not thread.is_alive():
|
if thread.name == "MainThread" and not thread.is_alive():
|
||||||
return
|
return
|
||||||
|
|
||||||
events = epoll.poll(1)
|
events = epoll.poll(1)
|
||||||
|
|
||||||
for fileno, event in events:
|
for fileno, event in events:
|
||||||
line = sys.stdin.readline().strip(",").strip()
|
line = "["
|
||||||
|
while "[" in line:
|
||||||
|
line = sys.stdin.readline().strip(",").strip()
|
||||||
inp.has_event = True
|
inp.has_event = True
|
||||||
try:
|
try:
|
||||||
event = json.loads(line)
|
event = json.loads(line)
|
||||||
|
|
Loading…
Reference in a new issue