To remove a signal handler, use the IDL_SignalUnregister() function:

export int IDL_SignalUnregister(int signo, IDL_SignalHandler_t func, int msg_action)

where:

signo

The signal to unregister.

func

The handler to be unregistered.

msg_action

One of the IDL_MSG_* action codes for IDL_Message(). If there is an error in removing the signal handler, this action code is passed to IDL_Message() to direct its recovery action.

Once IDL_SignalUnregister() has been called, func is unregistered and will no longer be called if the signal is raised. IDL_SignalUnregister() returns TRUE for success, FALSE for failure. Requests to unregister a function that has not been previously registered are ignored.