LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Undeclared identifier 'DEFAULT_THREAD_POOL_HANDLE'.

Solved!
Go to solution

LabWindows/CVI 8.5

 

Trying to teach myself some "thread stuff"

 

When I compile I get the error:    Undeclared identifier 'DEFAULT_THREAD_POOL_HANDLE'.


I figure there's a library I need to include, but I don't see it in the docs.  Help, plz?

 

Here is the whole program:

#include <cvirte.h>        
#include <userint.h>
#include <windows.h>
#include "thread.h"
#include "globals.h"

static int panelHandle;

int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       LPSTR lpszCmdLine, int nCmdShow)
{
    if (InitCVIRTE (hInstance, 0, 0) == 0)
        return -1;    /* out of memory */
    if ((panelHandle = LoadPanel (0, "thread.uir", PANEL)) < 0)
        return -1;
    DisplayPanel (panelHandle);
    RunUserInterface ();
    DiscardPanel (panelHandle);
    CmtWaitForThreadPoolFunctionCompletion (DEFAULT_THREAD_POOL_HANDLE, functionID, THREAD_PRIORITY_NORMAL);
    return 0;
}

int CVICALLBACK Run (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    static int    Thread_ID = 0;
    
    switch (event)
    {
        case EVENT_COMMIT:
            GetCtrlVal( PANEL, PANEL_BINARYSWITCH, &running );
            
            if( Thread_ID == 0 )
            {
                CmtScheduleThreadPoolFunction (DEFAULT_THREAD_POOL_HANDLE, DataAcqThreadFunction, NULL, &functionID);
            }
            
                
            
            

            break;
    }
    return 0;
}

int CVICALLBACK Quit (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
            QuitUserInterface (0);
            break;
    }
    return 0;
}


int CVICALLBACK DataAcqThreadFunction (void *functionData)
{
    int clock_div = 0;
    int count = 0;
        
    while (!running)
    {
            for( clock_div=0 ; clock_div<10000000 ; clock_div++){}
                
            count++;
            
            if (count > 10000)
                count = 0;
            
            functiondata = count;
    }
    return 0;
}

int CVICALLBACK UpdateGauge (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
            SetCtrlVal( PANEL, PANEL_NUMERICGAUGE, functiondata );

            break;
    }
    return 0;
}

0 Kudos
Message 1 of 2
(3,817 Views)
Solution
Accepted by topic author tomii

Never mind, all.  Did a global search on the CVI directories.

 

it's in "util.h"

0 Kudos
Message 2 of 2
(3,811 Views)