/* File: D:\WACKER\tdll\engnthrd.c (Created: 04-Dec-1993) * * Copyright 1993 by Hilgraeve Inc. -- Monroe, MI * All rights reserved * * $Revision: 1 $ * $Date: 10/05/98 12:39p $ */ #include #include "stdtyp.h" #include "assert.h" #include "session.h" #include DWORD WINAPI EngineThread(const HSESSION hSession); /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- * FUNCTION: * CreateEngineThread * * DESCRIPTION: * Creates the communications thread (What a surpise!). * * ARGUMENTS: * hSession - session handle * * RETURNS: * 0=OK, 1=error. * */ int CreateEngineThread(const HSESSION hSession) { DWORD dwThreadId; HANDLE hThread; if (sessQueryEngineThreadHdl(hSession)) return 1; hThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)EngineThread, hSession, CREATE_SUSPENDED, &dwThreadId); if (hThread == 0) { assert(FALSE); return 1; } sessSetEngineThreadHdl(hSession, hThread); ResumeThread(hThread); return 0; } /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- * FUNCTION: * DestoryEngineThread * * DESCRIPTION: * Terminates the engine thread gracefully * * ARGUMENTS: * hSession - hSession * * RETURNS: * void * */ void DestroyEngineThread(const HSESSION hSession) { sessSetEngineThreadHdl(hSession, 0); return; } /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- * FUNCTION: * EngineThread * * DESCRIPTION: * Creates the Engine thread. * * Important: This function must be declared WINAPI and DWORD return * because it is essentially a callback function. * * ARGUMENTS: * hSession - session handle * * RETURNS: * 0 * */ DWORD WINAPI EngineThread(const HSESSION hSession) { CLoop(sessQueryCLoopHdl(hSession)); return 0; }