From af2ad8e37d852f66d499125e75fca92762463678 Mon Sep 17 00:00:00 2001 From: daniel Date: Wed, 30 Jan 2013 12:49:10 +0900 Subject: Fire an interrupt when a new interrupt channel is requested and one exists, this is to check if the existing connection is dead and get the RPC stuff to set the error --- vxi11_server.c | 5 +++++ 1 file changed, 5 insertions(+) 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 { -- cgit