khronosfws/openmax_al/src/common/xathreadsafety.c
branchRCL_3
changeset 20 0ac9a5310753
parent 19 095bea5f582e
child 21 999b2818a0eb
--- 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;
-    }
-