TransferRequest::~TransferRequest() { if ( m_CheckRequest_tid != TIMER_UNSET ) { daemonCore->Cancel_Timer( m_CheckRequest_tid ); } if ( m_proxy ) { ReleaseProxy( m_proxy, (TimerHandlercpp)&TransferRequest::CheckRequest, this ); } delete m_gahp; }
void CreamResource::UnregisterJob( BaseJob *base_job ) { CreamJob *job = dynamic_cast<CreamJob*>( base_job ); ASSERT( job ); if ( job->delegatedCredentialURI != NULL ) { bool delete_deleg = true; CreamJob *next_job; registeredJobs.Rewind(); while ( (next_job = (CreamJob*)registeredJobs.Next()) != NULL ) { if ( next_job->delegatedCredentialURI != NULL && strcmp( job->delegatedCredentialURI, next_job->delegatedCredentialURI ) == 0 ) { delete_deleg = false; break; } } if ( delete_deleg ) { dprintf(D_FULLDEBUG,"*** deleting delegation %s\n",job->delegatedCredentialURI); CreamProxyDelegation *next_deleg; delegatedProxies.Rewind(); while ( (next_deleg = delegatedProxies.Next()) != NULL ) { if ( next_deleg->deleg_uri != NULL && strcmp( job->delegatedCredentialURI, next_deleg->deleg_uri ) == 0 ) { delegatedProxies.DeleteCurrent(); if ( activeDelegationCmd == next_deleg ) { deleg_gahp->purgePendingRequests(); activeDelegationCmd = NULL; } free( next_deleg->deleg_uri ); ReleaseProxy( next_deleg->proxy, (TimerHandlercpp)&CreamResource::ProxyCallback, this ); delete next_deleg; } } } } BaseResource::UnregisterJob( job ); // We have trouble maintaining the shared lease with the cream // server while we have no jobs for this resource object. // This can lead to trouble if a new job shows up before we're // deleted. So delete immediately until we can overhaul the // lease-update code. if ( IsEmpty() ) { daemonCore->Reset_Timer( deleteMeTid, 0 ); } }
CreamResource::~CreamResource() { dprintf(D_FULLDEBUG,"*** ~CreamResource\n"); CreamProxyDelegation *next_deleg; delegatedProxies.Rewind(); while ( (next_deleg = delegatedProxies.Next()) != NULL ) { dprintf(D_FULLDEBUG," deleting %s\n",next_deleg->deleg_uri?next_deleg->deleg_uri:"(undelegated)"); delegatedProxies.DeleteCurrent(); free( next_deleg->deleg_uri ); ReleaseProxy( next_deleg->proxy, (TimerHandlercpp)&CreamResource::ProxyCallback, this ); delete next_deleg; } if ( delegationServiceUri != NULL ) { free( delegationServiceUri ); } if ( serviceUri != NULL ) { free( serviceUri ); } ResourcesByName.remove( HashKey( HashName( resourceName, proxySubject, proxyFirstFQAN ) ) ); daemonCore->Cancel_Timer( delegationTimerId ); if ( gahp != NULL ) { delete gahp; } if ( deleg_gahp != NULL ) { delete deleg_gahp; } delete status_gahp; delete m_leaseGahp; if ( proxySubject ) { free( proxySubject ); } free( proxyFQAN ); free( proxyFirstFQAN ); }
NordugridJob::~NordugridJob() { if ( jobProxy != NULL ) { ReleaseProxy( jobProxy, (TimerHandlercpp)&BaseJob::SetEvaluateState, this ); } if ( myResource ) { myResource->UnregisterJob( this ); } if ( remoteJobId ) { free( remoteJobId ); } if ( gahp != NULL ) { delete gahp; } if ( RSL ) { delete RSL; } if ( stageList ) { delete stageList; } if ( stageLocalList ) { delete stageLocalList; } }