Thanks. Will go to UNIX and try there. As I understand sdselect it hangs until either a socket event occurs or the timer expires. What I was wanting to do was to allow other events such as forms events to also be handled as can be done in Windows using adsync. I guess in UNIX one has to set a reasonably small timer in sdselect to let J wake up and see if anything else needs to be done.
On Fri, Feb 26, 2010 at 7:08 AM, Eric Iverson <[email protected]>wrote: > J Unix sockets require use of sdselect. No C required. > > On Thu, Feb 25, 2010 at 11:54 PM, Don Guinn <[email protected]> wrote: > > > Thank you for the suggestions. I found my problem. I thought that setting > > sdasync set async for all sockets. It has to be set for each socket. > Also, > > strange things happen when you mix async and non-async sockets in the > same > > J > > session. Doesn't look like a good idea to mix them. > > > > I gather that J under UNIX does not support async and waiting on socket > > events and other events together requires writing something in C. Also, > the > > help file http://www.jsoftware.com/help/user/socket_utilities.htm needs > to > > be corrected changing "sdwsaasync" to "sdasync". > > > > On Thu, Feb 25, 2010 at 2:28 PM, David Mitchell <[email protected] > > >wrote: > > > > > On 2/25/2010 15:51, Don Guinn wrote: > > > > In attempting to make a socket non-blocking I am trying to use > > "sdasync" > > > and > > > > it appears not to work; however, I'm sure it's something I'm doing > > wrong > > > and > > > > that is not my question. In looking at the sockets script there is a > > > message > > > > in the "sdasync" definition saying it is not implemented in UNIX. To > > use > > > > "sdselect". Does this mean that it is impossible to have non-blocking > > > > sockets in UNIX? If you can have non-blocking sockets in UNIX, how is > > it > > > > done? > > > > > > > > In the help file for sockets near the bottom of the page, next to > last > > > name, > > > > is the name "sdwsaasync" which is to set non-blocking. No such name > in > > > the > > > > sockets script. Shouldn't that the name should be "adsync". > > > > > > > > > > Here is an example: > > > > > > > > > > > > http://www.jsoftware.com/jwiki/JWebServer/EventHandler?highlight=%28sdselect%29 > > > > > > And a paper > > > > > > Abstract: > > > UNIX applications not wishing to block when doing > > > I/O often use the select() system call, to wait for > > > events on multiple file descriptors. > > > > > > http://www.usenix.org/event/usenix99/full_papers/banga/banga.pdf > > > -- > > > David Mitchell > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
