From 39fc0d0d4cc13c372342249e6f634758e21da2db Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Fri, 20 Sep 1991 15:31:07 +0000 Subject: [PATCH] V4/V5 --- src/rsrv/caservertask.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/rsrv/caservertask.c b/src/rsrv/caservertask.c index f822b3b43..d8a5ba7c2 100644 --- a/src/rsrv/caservertask.c +++ b/src/rsrv/caservertask.c @@ -32,6 +32,7 @@ * .02 joh 071591 print the delay from the last interaction in * client_stat(). * .03 joh 080991 close the socket if task create fails + * .04 joh 090591 updated for v5 vxWorks */ #include @@ -181,11 +182,14 @@ register struct client *client; /* * Server task deleted first since close() is not reentrant */ - if (servertid != taskIdSelf() && servertid) - if (td(servertid) == ERROR) { /* delete server */ - if (errnoGet() != S_taskLib_TASK_ID_ERROR) + if (servertid != taskIdSelf() && servertid){ + if (taskIdVerify(servertid) == OK){ + if (taskDelete(servertid) == ERROR) { printErrno(errnoGet()); + } } + } + pciu = (struct channel_in_use *) & client->addrq; while (pciu = (struct channel_in_use *) pciu->node.next) while (pevext = (struct event_ext *) lstGet(&pciu->eventq)) { @@ -215,6 +219,14 @@ register struct client *client; &rsrv_free_addrq); FASTUNLOCK(&rsrv_free_addrq_lck); + if(FASTLOCKFREE(&client->send.lock)<0){ + logMsg("cas: couldnt free sem\n"); + } + + if(FASTLOCKFREE(&client->recv.lock)<0){ + logMsg("cas: couldnt free sem\n"); + } + return OK; }