KolibriLib
Loading...
Searching...
No Matches
thread.hpp
1
#ifndef __THREAD_H__
2
#define __THREAD_H__
3
4
#include <stdio.h>
5
#include <stdlib.h>
6
#include <sys/ksys.h>
7
8
namespace
KolibriLib
9
{
11
namespace
Thread
12
{
13
19
unsigned
CreateThread
(
void
*ThreadEntry,
unsigned
ThreadStackSize = 2048)
20
{
21
void
* th_stack = malloc(ThreadStackSize);
22
if
(!th_stack)
// Если памяти не было выделенно
23
{
24
_ksys_debug_puts(
"Memory allocation error for thread!"
);
25
return
-1;
26
}
27
unsigned
TID = _ksys_create_thread(ThreadEntry, th_stack + ThreadStackSize);
28
if
(TID == -1)
// Если поток небыл создан
29
{
30
_ksys_debug_puts(
"Unable to create a new thread!"
);
31
return
TID;
32
}
33
return
TID;
34
}
35
40
bool
TerminateThread
(
int
PID)
41
{
42
int
a;
43
asm_inline(
44
"int $0x40"
45
:
"=a"
(a)
46
:
"a"
(18),
"b"
(18),
"c"
(PID)
47
);
48
if
(!a)
49
{
50
return
true
;
51
}
52
else
53
{
54
return
false
;
55
}
56
}
57
}
// namespace Thread
58
59
}
// namespace KolibriLib
60
61
62
#endif
// __THREAD_H__
KolibriLib::Thread::CreateThread
unsigned CreateThread(void *ThreadEntry, unsigned ThreadStackSize=2048)
Создать поток
Definition
thread.hpp:19
KolibriLib::Thread::TerminateThread
bool TerminateThread(int PID)
Завершить процесс/поток
Definition
thread.hpp:40
KolibriLib
Основное пространство имён
Definition
base.hpp:17
src
include
kolibriLib
thread.hpp
Generated by
1.10.0