Subject: bug#25214: #25214 26.0.50; Interacting with user from threads other than the primary

From: Zhang Haijun <[email-masked]>
Date: Thu, 7 Feb 2019 14:56:22 +0000

> 在 2019年2月7日，下午10:29，Eli Zaretskii <[email-masked]> 写道：
> 
> How do you "send input request to the fd"?  A program cannot both read
> and write to the same fd within the same process, at least not
> portably.
> 

Sorry for my poor English and poor expression. I mean a data channel, for example a pair of fd created by pipe() or a pair of sockets created by socketpair(). producer-consumer model.

> If another thread writes to some fd, it means the main thread is not
> running, so it cannot receive the event, even if we did find the way
> of having an fd which can be read by one thread and written by all the
> others.

Another thread send a input request and then be blocked on a lock(for example, keybord lock, one lock per thread). The main thread(or keybord sheduler thread) then can wake up one thread and give keybord to it.