/// Routine to free/destroy/finalize our ChildProcess objects.
FSTATIC void
_childprocess_finalize(AssimObj* aself)
{
	ChildProcess*	self = CASTTOCLASS(ChildProcess, aself);
	if (self->stdout_src) {
		g_source_destroy(&self->stdout_src->baseclass);
		g_source_unref(&self->stdout_src->baseclass);
		//self->stdout_src->finalize(self->stdout_src);
		self->stdout_src = NULL;
	}
	if (self->stderr_src) {
		g_source_destroy(&self->stderr_src->baseclass.baseclass);
		g_source_unref(&self->stderr_src->baseclass.baseclass);
		//self->stderr_src->baseclass.finalize(&self->stderr_src->baseclass);
		self->stderr_src = NULL;
	}
	if (self->loggingname) {
		g_free(self->loggingname);
		self->loggingname = NULL;
	}
	if (self->timeoutsrc_id > 0)  {
		g_source_remove(self->timeoutsrc_id);
		DEBUGMSG3("%s:%d: Removed timeout for process with user_data = %p"
		,	__FUNCTION__, __LINE__, self);
		self->timeoutsrc_id = 0;
	}
	_assimobj_finalize(aself);
	self = NULL;
	aself = NULL;
}
/// Finalize (destructor) function for our CryptFramePrivateKey objects
FSTATIC void
_cryptframe_privatekey_finalize(AssimObj* privkey) ///< object to finalize/destroy
{
	CryptFramePrivateKey*	self = CASTTOCLASS(CryptFramePrivateKey, privkey);
	if (self->key_id) {
		g_free(self->key_id);
		self->key_id = NULL;
	}
	if (self->private_key) {
		g_free(self->private_key);
		self->private_key = NULL;
	}
	_assimobj_finalize(privkey);
}
/// Finalize (destructor) function for our CryptFramePublicKey objects
FSTATIC void
_cryptframe_publickey_finalize(AssimObj* pubkey) ///< object to finalize/destroy
{
	CryptFramePublicKey*	self = CASTTOCLASS(CryptFramePublicKey, pubkey);
	if (self->key_id) {
		g_free(self->key_id);
		self->key_id = NULL;
	}
	if (self->public_key) {
		g_free(self->public_key);
		self->public_key = NULL;
	}
	_assimobj_finalize(pubkey);
}
示例#4
0
/// Finalize a ResourceQueue -- RIP
FSTATIC void
_resource_queue_finalize(AssimObj* aself)
{
	ResourceQueue*	self = CASTTOCLASS(ResourceQueue, aself);

	self->shuttingdown = TRUE;
	if (self->activechildcnt > 0) {
		return;
	}
	if (self->resources) {
		g_hash_table_destroy(self->resources);
		self->resources = NULL;
	}
	if (self->timerid >= 0) {
		g_source_remove(self->timerid);
		self->timerid = -1;
	}
	_assimobj_finalize(&self->baseclass);
	self = NULL;
}