11-14-2005 01:29 PM
11-15-2005 10:04 AM
11-16-2005 10:35 AM
11-16-2005 10:47 AM - edited 11-16-2005 10:47 AM
| ud | Board unit descriptor or board index descriptor |
| v | Indicates whether to acquire or release the interface lock |
| LockWaitTime | Time period (in milliseconds) to wait for an exclusive lock before returning ELCK |
| Reserved | Reserved for future use; must be NULL |
Message Edited by ScottieB on 11-16-2005 10:47 AM
11-16-2005 11:52 AM
11-16-2005
05:28 PM
- last edited on
11-05-2025
04:08 PM
by
Content Cleaner
Here's a good resource.
Regards,
Matt S.
11-17-2005 11:45 AM
Yes, this is an issue with the Linux drivers/OS. It goes something like this:
With the Linux and Windows driver, you can do an ibfind gpib0 (assuming gpib0 is an ENET/100) with the ENET/100 turned off, and it will fail relatively quickly. However, if you're in the middle of doing something (meaning, you already have valid sockets opened to the device) and then you shut off the GPIB-ENET/100 or it loses its network connection, the Linux OS is persistent in trying to deliver TCP packets to the device for a really long time. Windows gives up a little sooner. The problem is, we don't know if we are blocking for another call on the ENET/100 device (in which case we would block indefinitely, even if the call was iblck with a 10ms timout) or if the ENET/100 is completely gone. Once the OS returns the "your socket is disconnected" error, we obviously figure it out quickly and return EDVR. But Linux (and Unixes in general) are persistent for many many minutes so they don't give us this error for a long time. Thus, your iblck appears to hang.