/
Zamar_Terrier
/
TigorEngine
Обзор
Документация
Войти
/
Zamar_Terrier
/
TigorEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/test_threads.c
80 строк
2 KB
zamarterrier
small fix test
03 фев 2026, 22:00
03 фев 2026, 22:00
d37a07b
Код
Авторство
О чём код?
#include <TigorEngine.h> #include <Core/e_memory.h> #include <tigor.h> tigor_mutex_t *mutex; int running; tigor_memory_pool_t *pool; typedef struct{ int number; } DataStr; static void *temp_thread_call(tigor_thread_t *thread, void *obj){ DataStr *data = (DataStr *)obj; while(true){ printf("Thread number is: %i\n", data->number); } } void MakeThread(int number){ tigor_status_t status; tigor_thread_t *thread; tigor_thread_cond_t *cond; tigor_threadattr_t *thd_attr; DataStr *data = AllocateMemory(1, sizeof(DataStr)); data->number = number; tigor_thread_cond_create(&cond, NULL); tigor_mutex_init(&mutex, 0, NULL); tigor_threadattr_create(&thd_attr, NULL); tigor_threadattr_detach_set(thd_attr, 1); tigor_threadattr_stacksize_set(thd_attr, TIGOR_THREAD_STACKSIZE); tigor_threadattr_priority_set(thd_attr, TIGOR_PRI_LOW); if (tigor_thread_create(&thread, thd_attr, temp_thread_call, data, NULL) != TIGOR_STATUS_SUCCESS) { //tigor_mutex_lock(mutex); if (!--running) { tigor_thread_cond_signal(cond); } //tigor_mutex_unlock(mutex); printf("Thread Failure!\n"); //apr_core_destroy_memory_pool(&pool); status = TIGOR_STATUS_GENERR; //thread_launch_failure(); } else { status = TIGOR_STATUS_SUCCESS; } } void Update(float deltaTime){ } void Draw(){ } int main(){ TEngineInitSystem(800, 600, "TestThread"); TEngineSetUpdater(Update); TEngineSetDrawer(Draw); MakeThread(1); MakeThread(2); TEngineStartRender(); TEngineDeviceWaitIdle(); TEngineCleanUp(); return 0; }