short deinitialize()
	{
		if (!is_init)
		{
			MsgDumperCmnDef.WriteErrorSyslog(__FILE__(), __LINE__(), "Library has been initialized");
			return MsgDumperCmnDef.MSG_DUMPER_FAILURE_INCORRECT_OPERATION;
		}

		short ret = MsgDumperCmnDef.MSG_DUMPER_SUCCESS;
// Notify to DeInitialize the worker thread
		for (int i = 0 ; i < facility_size ; i++)
		{
			if (msg_dumper_thread[i] != null)
			{
				MsgDumperCmnDef.WriteDebugFormatSyslog(__FILE__(), __LINE__(), "Notify to Release the Object: %s", dev_name[i]);
				ret = msg_dumper_thread[i].notify_to_deinitialize();
				if (MsgDumperCmnDef.CheckMsgDumperFailure(ret))
					return ret;
			}
		}
// DeInitialize the worker thread
		for (int i = 0 ; i < facility_size ; i++)
		{
			if (msg_dumper_thread[i] != null)
			{
				MsgDumperCmnDef.WriteDebugFormatSyslog(__FILE__(), __LINE__(), "Release the Object: %s", dev_name[i]);
				ret = msg_dumper_thread[i].deinitialize();
				if (MsgDumperCmnDef.CheckMsgDumperFailure(ret))
					return ret;

				msg_dumper_thread[i] = null;
			}
		}
		is_init = false;

		return MsgDumperCmnDef.MSG_DUMPER_SUCCESS;
	}