summaryrefslogtreecommitdiff
path: root/vxi11_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'vxi11_server.c')
-rw-r--r--vxi11_server.c5
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 {