priority.c
来自「epson 13506 driver code」· C语言 代码 · 共 71 行
C
71 行
/*
**===========================================================================
** PRIORITY.C - Provide functions for time-critical code
**---------------------------------------------------------------------------
** Copyright (c) 1999, 2001 Epson Research and Development, Inc.
** All Rights Reserved.
**===========================================================================
*/
#ifdef INTEL_W32
#include <windows.h>
#endif
#include "hal.h"
/*-------------------------------------------------------------------------*/
static const char Revision[] = "PRIORITY.C=$Revision: 4 $";
/*-------------------------------------------------------------------------*/
int _ThreadPriorityNestCount = 0;
#ifdef INTEL_W32
static unsigned SavedProcessPriority;
static unsigned SavedThreadPriority;
int seBeginHighPriority(void)
{
if (_ThreadPriorityNestCount == 0)
{
SavedProcessPriority = GetPriorityClass(GetCurrentProcess());
SavedThreadPriority = GetThreadPriority(GetCurrentThread());
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
}
_ThreadPriorityNestCount++;
return _ThreadPriorityNestCount;
}
int seEndHighPriority(void)
{
if (_ThreadPriorityNestCount == 1)
{
SetPriorityClass(GetCurrentProcess(), SavedProcessPriority);
SetThreadPriority(GetCurrentThread(), SavedThreadPriority);
}
if (_ThreadPriorityNestCount > 0)
_ThreadPriorityNestCount--;
return _ThreadPriorityNestCount;
}
#else
int seBeginHighPriority(void)
{
_ThreadPriorityNestCount++;
return _ThreadPriorityNestCount;
}
int seEndHighPriority(void)
{
if (_ThreadPriorityNestCount > 0)
_ThreadPriorityNestCount--;
return _ThreadPriorityNestCount;
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?