> You might modify the sdasync verb in socket.ijs by sending a mousemove > message to a isigraph inside a form and filling its wparam lparam with > socket id and event id. Inside the form you write a verb for > mousemove event of that isigraph and re-interpret its mouse co-ordinates > as socket id. Once you know the socket id and event type you can > process without sdselect. >
Well, that's a new trick. If I may trouble you: how do I send a mousemove event to a particular isigraph? And, isn't there some special event that we can use for talking to J applications? I've never needed to know about it, but do you know how you would send it? Henry Rich bill lam wrote: > On Thu, 19 Feb 2009, Henry Rich wrote: >> Error means OOB? Wow. How'd you learn that? > > I did not look at the details of winsock for several years so my > memory might not serve me, please re-check for accuracy. > >> You are saying socket_handler is edge-triggered on read and write, but >> what I have seen (if I tested correctly) is that it is edge-triggered >> only on write, and on read it calls whenever there is work. So: > > It also applies to read in that it will only trigger an event for a > particular socket once. If you choose to ignore, that socket will not > trigger another read event again. However if you do a sdread, the mask > flag is cleared and it will trigger again. > >> data arrives on sockets 0 and 1 >> socket_handler is called >> it reads socket 0 >> socket_handler exits >> socket_handler is immediately called again > > This should be trigger by socket 0 (which is re-enabled after sdread) > or socket 1 (which is already inside message queue), > >> or >> >> >> data arrives on socket 0 >> socket_handler is called >> it reads socket 0, but only part of the data >> socket_handler exits >> socket_handler is immediately called again > > same as above, read event is re-enabled after sdread. > >> >> > The sdasync actually provide information for the identification of >> > socket and the type of event. If you process this message then it is >> > no need to do sdselect. >> > >> >> I don't understand what you mean here. What message are you talking >> about, and how do I process it? (Are you hinting at a general way of >> handling messages that wd doesn't support? That would be great.) >> > > You might modify the sdasync verb in socket.ijs by sending a mousemove > message to a isigraph inside a form and filling its wparam lparam with > socket id and event id. Inside the form you write a verb for > mousemove event of that isigraph and re-interpret its mouse co-ordinates > as socket id. Once you know the socket id and event type you can > process without sdselect. > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
