--- a/khronosfws/openmax_al/src/common/xathreadsafety.c Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: Thread Safety Implementation
- *
- */
-
-#include <stdlib.h>
-#include "xathreadsafety.h"
-
-typedef struct
- {
- XAImplMutexHandle mutexTable[XATSCount];
- XAboolean tsEnabled;
- } XAThreadSafetyImpl;
-
-static XAThreadSafetyImpl* threadSafety;
-
-/*
- * XAresult XAThreadSafety_Init()
- * Description: Creates mutex table for thread safety support
- * @return: Success value
- */
-XAresult XAThreadSafety_Init(XAboolean tsEnable)
- {
- XAresult ret = XA_RESULT_SUCCESS;
- XAint32 i = 0;
- DEBUG_API_A1("->XAThreadSafety_Init - tsEnable:%lu",tsEnable);
-
- /* Initialize thread safety only once */
- if (!threadSafety)
- {
- threadSafety = (XAThreadSafetyImpl *) calloc(1,
- sizeof(XAThreadSafetyImpl));
- if (!threadSafety)
- {
- DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
- DEBUG_API("<-XAThreadSafety_Init");
- /* memory allocation failed */
- return XA_RESULT_MEMORY_FAILURE;
- }
-
- threadSafety->tsEnabled = tsEnable;
-
- if (tsEnable)
- {
- for (i = 0; i < XATSCount; i++)
- {
- ret = XAImpl_CreateMutex(&threadSafety->mutexTable[i]);
- if (ret != XA_RESULT_SUCCESS)
- {
- break;
- }
- DEBUG_INFO_A2("Created %s:%x",MEDIAOBJECTNAME(i), threadSafety->mutexTable[i] );
- }
- }
- else
- {
- DEBUG_INFO("Thread safety: disabled.");
- }
- }
-
- DEBUG_API("<-XAThreadSafety_Init");
- return ret;
- }
-
-/*
- * XAresult XAThreadSafety_Destroy()
- * Description: Destroys mutex table created for thread safety support
- */
-XAresult XAThreadSafety_Destroy()
- {
- XAresult ret = XA_RESULT_SUCCESS;
- XAint32 i = 0;
- DEBUG_API("->XAThreadSafety_Destroy");
-
- if (threadSafety)
- {
- if (threadSafety->tsEnabled)
- {
- for (i = 0; i < XATSCount; i++)
- {
- DEBUG_INFO_A2("Free %s:%x",MEDIAOBJECTNAME(i), threadSafety->mutexTable[i] );
- XAImpl_DeleteMutex(threadSafety->mutexTable[i]);
- }
- }
- free(threadSafety);
- }
- else
- {
- DEBUG_INFO("Thread safety: disabled.");
- }
-
- DEBUG_API("<-XAThreadSafety_Destroy");
- return ret;
-
- }
-
-/*
- * XAresult XAThreadSafety_Unlock( XAThreadSafetyMediaObjects mediaObject )
- * Description:
- * @param XAThreadSafetyMediaObjects mediaObject
- * @return
- */
-XAresult XAThreadSafety_Unlock(XAThreadSafetyMediaObjects mediaObject)
- {
- XAresult ret = XA_RESULT_SUCCESS;
- DEBUG_API("->XAThreadSafety_Unlock");
-
- if (threadSafety)
- {
- if (threadSafety->tsEnabled)
- {
- ret = XAImpl_UnlockMutex(threadSafety->mutexTable[mediaObject]);
- if (ret == XA_RESULT_SUCCESS)
- {
- DEBUG_INFO_A2("Released lock for %s:%x",MEDIAOBJECTNAME(mediaObject), threadSafety->mutexTable[mediaObject] );
- }
- }
- }
- else
- {
- DEBUG_INFO("Thread safety: disabled.");
- }
- DEBUG_API("<-XAThreadSafety_Unlock");
- return ret;
- }
-/*
- * XAresult XAThreadSafety_TryLock( XAThreadSafetyMediaObjects mediaObject );
- * Description:
- * @param XAThreadSafetyMediaObjects mediaObject
- * @return
- */
-XAresult XAThreadSafety_TryLock(XAThreadSafetyMediaObjects mediaObject)
- {
- XAresult ret = XA_RESULT_SUCCESS;
- DEBUG_API("->XAThreadSafety_TryLock");
-
- if (threadSafety)
- {
- if (threadSafety->tsEnabled)
- {
- ret = XAImpl_TryLockMutex(threadSafety->mutexTable[mediaObject]);
- if (ret == XA_RESULT_SUCCESS)
- {
- DEBUG_INFO_A2("Locked %s:%x",MEDIAOBJECTNAME(mediaObject), threadSafety->mutexTable[mediaObject] );
- }
- }
- }
- else
- {
- DEBUG_INFO("Thread safety: disabled.");
- }
-
- DEBUG_API("<-XAThreadSafety_TryLock");
- return ret;
- }
-