@napi-rs/nice
Version:
https://linux.die.net/man/2/nice binding for Node.js
74 lines (51 loc) • 5.85 kB
Markdown
# `@napi-rs/nice`

[](https://packagephobia.com/result?p=@napi-rs/nice)
[](https://npmcharts.com/compare/@napi-rs/nice?minimal=true)
> 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)
***https://linux.die.net/man/2/nice binding for Node.js***
# Usage
## Install this test package
```
pnpm add @napi-rs/nice
```
or
```
yarn add @napi-rs/nice
```
or
```
npm install @napi-rs/nice
```
## `nice`
On Unix, `nice()` adds inc to the nice value for the calling process. (A higher nice value means a low priority.) Only the superuser may specify a negative increment, or priority increase. The range for nice values is described in [getpriority(2)](https://linux.die.net/man/2/getpriority).
On Windows, it uses the [`SetThreadPriority`](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority) function.
```js
// on Unix
import { nice } from '@napi-rs/nice'
nice(2)
```
```js
// on Windows
import { nice, WindowsThreadPriority } from '@napi-rs/nice'
nice(WindowsThreadPriority.THREAD_PRIORITY_ABOVE_NORMAL)
```
## `getCurrentProcessPriority`
This function gets the priority of the current process.
On Unix, it uses the [`getpriority(2)`](https://linux.die.net/man/2/getpriority).
On Windows, it uses the [`GetThreadPriority`](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getthreadpriority) function.
| Priority Constant | Value | Description |
| ----------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| THREAD_MODE_BACKGROUND_BEGIN | 0x00010000 | Begin background processing mode. The system lowers the resource scheduling priorities of the thread so that it can perform background work without significantly affecting activity in the foreground. |
| | | This value can be specified only if hThread is a handle to the current thread. The function fails if the thread is already in background processing mode. |
| | | Windows Server 2003: This value is not supported. |
| THREAD_MODE_BACKGROUND_END | 0x00020000 | End background processing mode. The system restores the resource scheduling priorities of the thread as they were before the thread entered background processing mode. |
| | | This value can be specified only if hThread is a handle to the current thread. The function fails if the thread is not in background processing mode. |
| | | Windows Server 2003: This value is not supported. |
| THREAD_PRIORITY_ABOVE_NORMAL | 1 | Priority 1 point above the priority class. |
| THREAD_PRIORITY_BELOW_NORMAL | -1 | Priority 1 point below the priority class. |
| THREAD_PRIORITY_HIGHEST | 2 | Priority 2 points above the priority class. |
| THREAD_PRIORITY_IDLE | -15 | Base priority of 1 for IDLE_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority of 16 for REALTIME_PRIORITY_CLASS processes. |
| THREAD_PRIORITY_LOWEST | -2 | Priority 2 points below the priority class. |
| THREAD_PRIORITY_NORMAL | 0 | Normal priority for the priority class. |
| THREAD_PRIORITY_TIME_CRITICAL | 15 | Base priority of 15 for IDLE_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority of 31 for REALTIME_PRIORITY_CLASS processes. |