diff options
-rw-r--r-- | vxi11_server.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/vxi11_server.c b/vxi11_server.c index 34e2919..144141e 100644 --- a/vxi11_server.c +++ b/vxi11_server.c @@ -487,6 +487,7 @@ device_enable_srq_1_svc(Device_EnableSrqParms *argp, struct svc_req *rqstp) { printf("Interrupt handle set to %s\n", inthandler); #endif } + vxi11_fireinterrupt(); } #ifdef DEBUG else { @@ -552,6 +553,7 @@ create_intr_chan_1_svc(Device_RemoteFunc *argp, struct svc_req *rqstp) { // we need to clean it up to avoid a deadlock static struct rpc_err err; if (intclient != NULL ) { + vxi11_fireinterrupt(); clnt_geterr(intclient, &err); if (err.re_errno != 0) { #ifdef DEBUG @@ -565,6 +567,9 @@ create_intr_chan_1_svc(Device_RemoteFunc *argp, struct svc_req *rqstp) { if (argp->progFamily != DEVICE_TCP || argp->progNum != DEVICE_INTR || argp->progVers != DEVICE_INTR_VERSION) result.error = ERR_OPERATIONNOTSUPPORTED; else if (intclient != NULL ) { +#ifdef DEBUG + printf("Not creating interrupt channel, already exists\n"); +#endif result.error = ERR_CHANNELALREADYESTABLISHED; } else { |