Re: IMSL routine access from IDL [message #4166] |
Tue, 09 May 1995 00:00 |
Ken Knighton
Messages: 44 Registered: May 1995
|
Member |
|
|
Robert Cramblitt writes:
> I am trying to use the IDL call_external
> routine to call a C routine that, in turn, calls
> routines in the IMSL library. The environment
> is the Sun's Solaris operating system on a
> sparcstation. I was able to do this under SunOs 4.x,
> but under Solaris I find that, about 3 minutes after
> making such a call, I get the cryptic message
> "Alarm clock" and IDL execution terminates.
Although I don't have any experience with Solaris, I wouldn't be
surprised if this is similar to a problemI ran into under HP/UX.
The problem I had was doing a socket connection using a C
function called from IDL. IDL makes use of a number of UNIX
signals including SIGALRM. RSI told me that SIGALRM is set to
occur every two seconds when widgets are being used. This will
screw up any i/o that is taking place when it happens.
I solved this problem by using:
oldmask = sigblock(0x2000) /* blocks SIGALRM under HP/UX */
(Part of C function that does i/o)
sigblock(oldmask) /* restores SIGALRM if set */
Hope this helps,
Ken Knighton
|
|
|