Edit

kc3-lang/angle/src/compiler/ossource_nspr.cpp

Branch :

  • Show log

    Commit

  • Author : alokp@chromium.org
    Date : 2010-10-14 18:20:24
    Hash : fafd033e
    Message : Added NSPR support for thread-local storage. Patch submitted by vladimirv. I have slightly modified the patch to still define ANGLE_OS_WIN and ANGLE_OS_POSIX. BUG=54 Review URL: http://codereview.appspot.com/2497041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@454 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • src/compiler/ossource_nspr.cpp
  • //
    // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    //
    // This file contains the nspr specific functions
    //
    #include "compiler/osinclude.h"
    
    //
    // Thread Local Storage Operations
    //
    OS_TLSIndex OS_AllocTLSIndex()
    {
        PRUintn index;
        PRStatus status = PR_NewThreadPrivateIndex(&index, NULL);
    
        if (status) {
            assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage");
            return OS_INVALID_TLS_INDEX;
        }
    
        return index;
    }
    
    bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
    {
        if (nIndex == OS_INVALID_TLS_INDEX) {
            assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
            return false;
        }
    
        return PR_SetThreadPrivate(nIndex, lpvValue) == 0;
    }
    
    bool OS_FreeTLSIndex(OS_TLSIndex nIndex)
    {
        // Can't delete TLS keys with nspr
        return true;
    }