rem: Tcl_HashEntry  *hPtr; Event          *ePtr;
add: Tcl_HashEntry  *hPtr = NULL; Event          *ePtr = NULL;
context: Ns_Cancel(int id){    Tcl_HashEntry  *hPtr;    Event          *ePtr;    int		    cancelled;    cancelled = 0;    Ns_MutexLock(&lock);    if (!shutdownPending) {    	hPtr = Tcl_FindHashEntry(&eventsTable, (char *) id);    	if (hPtr != NULL) {	    ePtr = Tcl_GetHashValue(hPtr);	    Tcl_DeleteHashEntry(hPtr);	    ePtr->hPtr = NULL;	    if (ePtr->qid > 0) {	    	DeQueueEvent(ePtr->qid);	    	cancelled = 1;	    }    	}    }    Ns_MutexUnlock(&lock);    if (cancelled) {	FreeEvent(ePtr);    }    return cancelled;}