feat: publish Android 1.0.1 candidate source and acceptance evidence
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
# HevTaskSystem
|
||||
|
||||
[](https://github.com/heiher/hev-task-system)
|
||||
|
||||
HevTaskSystem is a simple, lightweight multi-task system (coroutines).
|
||||
|
||||
The task system is executed within a native process/thread. In task system, you
|
||||
can create many tasks and attach them to the task system. When a task yields or
|
||||
is blocked by I/O, the scheduler will pick a suitable task from running list and
|
||||
switch to it. Memory space, file descriptors, and other resources are shared among
|
||||
all tasks in the task system. Each task has its private, standalone task structure
|
||||
(#HevTask) and stack in heap of the process.
|
||||
|
||||
Within a task, you can allocate memory from heap, read and write data to the stack,
|
||||
and perform I/O operations in synchronized mode.
|
||||
|
||||
## Features
|
||||
|
||||
* Simple/lightweight task.
|
||||
* I/O operations wrapper.
|
||||
* Inter-task synchronous. (Mutex/Condition)
|
||||
* Inter-task communications. (Channel)
|
||||
* Slice-based memory allocator.
|
||||
* Call on new stack.
|
||||
* Multi-thread support.
|
||||
* Multi-platform support. (Linux/BSD/macOS/Windows)
|
||||
|
||||
## How to Build
|
||||
|
||||
### Unix
|
||||
|
||||
```bash
|
||||
git clone https://gitlab.com/hev/hev-task-system
|
||||
cd hev-task-system
|
||||
make
|
||||
|
||||
# Link with librt (only for glibc versions before 2.17)
|
||||
make LDFLAGS=-lrt
|
||||
|
||||
# Disable stack overflow detection
|
||||
make ENABLE_STACK_OVERFLOW_DETECTION=0
|
||||
|
||||
# Set stack backend to heap (Recommended for 32-bit)
|
||||
make CONFIG_STACK_BACKEND=STACK_HEAP
|
||||
|
||||
# Disable sliced memory allocator
|
||||
make ENABLE_MEMALLOC_SLICE=0
|
||||
|
||||
# Disable I/O splice by splice syscall (for old Linux kernel)
|
||||
make ENABLE_IO_SPLICE_SYSCALL=0
|
||||
|
||||
# Demos
|
||||
make apps
|
||||
|
||||
# Tests
|
||||
make tests
|
||||
```
|
||||
|
||||
### Android
|
||||
|
||||
```bash
|
||||
mkdir hev-task-system
|
||||
cd hev-task-system
|
||||
git clone https://gitlab.com/hev/hev-task-system jni
|
||||
ndk-build
|
||||
```
|
||||
|
||||
### iOS and MacOS
|
||||
|
||||
```bash
|
||||
git clone https://gitlab.com/hev/hev-task-system
|
||||
cd hev-task-system
|
||||
# will generate HevTaskSystem.xcframework
|
||||
./build-apple.sh
|
||||
```
|
||||
|
||||
### Windows (MSYS2)
|
||||
|
||||
```bash
|
||||
export MSYS=winsymlinks:native
|
||||
git clone https://gitlab.com/hev/hev-task-system
|
||||
cd hev-task-system
|
||||
make
|
||||
```
|
||||
|
||||
## Demos
|
||||
|
||||
1. [simple](https://gitlab.com/hev/hev-task-system/blob/main/apps/simple.c)
|
||||
1. [channel](https://gitlab.com/hev/hev-task-system/blob/main/apps/channel.c)
|
||||
1. [timeout](https://gitlab.com/hev/hev-task-system/blob/main/apps/timeout.c)
|
||||
1. [wakeup](https://gitlab.com/hev/hev-task-system/blob/main/apps/wakeup.c)
|
||||
1. [echo-server](https://gitlab.com/hev/hev-task-system/blob/main/apps/echo-server.c)
|
||||
1. [call](https://gitlab.com/hev/hev-task-system/blob/main/apps/call.c)
|
||||
1. [gtk](https://gitlab.com/hev/hev-task-system/blob/main/apps/gtk.c)
|
||||
1. [curl](https://gitlab.com/hev/hev-task-system/blob/main/apps/curl.c)
|
||||
|
||||
## Contributors
|
||||
|
||||
* **hev** - https://hev.cc
|
||||
* **Mike Wang** - https://github.com/MikeWang000000
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user