Files
epics-base/modules/libcom/test/epicsThreadPrivateTest.cpp
Andrew Johnson 3c99391d93 Added SPDX License ID to all EPICS-original source files
In some cases the license-identification header was missing,
so I added that as well. Replaced the remaining headers that
specifically identified "Versions 3.13.7 and higher".

Makefiles and the build system were deliberately excluded.
2020-08-03 11:53:01 -05:00

50 lines
1.3 KiB
C++

/*************************************************************************\
* Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
* National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
* Operator of Los Alamos National Laboratory.
* SPDX-License-Identifier: EPICS
* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/* Author: Jeff Hill Date: March 28 2001 */
#include <stdio.h>
#include "epicsTime.h"
#include "epicsThread.h"
#include "epicsUnitTest.h"
#include "testMain.h"
static epicsThreadPrivate < bool > priv;
extern "C" void epicsThreadPrivateTestThread ( void * )
{
testOk1 ( NULL == priv.get () );
bool var = true;
priv.set ( &var );
testOk1 ( &var == priv.get () );
}
MAIN(epicsThreadPrivateTest)
{
testPlan(5);
bool var = false;
priv.set ( &var );
testOk1 ( &var == priv.get() );
epicsThreadCreate ( "epicsThreadPrivateTest", epicsThreadPriorityMax,
epicsThreadGetStackSize ( epicsThreadStackSmall ),
epicsThreadPrivateTestThread, 0 );
epicsThreadSleep ( 1.0 );
testOk1 ( &var == priv.get() );
priv.set ( NULL );
testOk1 ( NULL == priv.get() );
return testDone();
}