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