Linsus threads
Co-authored-by: Julian; <JDobeshow@users.noreply.github.com>
This commit is contained in:
parent
cc070b0598
commit
6eca5c2af5
38
System Abstraction/linux/cdb_thread.c
Normal file
38
System Abstraction/linux/cdb_thread.c
Normal file
@ -0,0 +1,38 @@
|
||||
#include "../cdb_sustem.h"
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
struct sus_thread_args {
|
||||
sus_threadProc proc;
|
||||
void *arg;
|
||||
};
|
||||
|
||||
typedef struct sus_thread_args sus_thread_args;
|
||||
|
||||
// Linux only uses System V AMD64 ABI calling convention (source: https://en.wikipedia.org/wiki/X86_calling_conventions)
|
||||
void *uwu_runThread(void *arg) {
|
||||
sus_thread_args *args = (sus_thread_args *) arg;
|
||||
sus_threadProc proc = args->proc;
|
||||
void *arg2 = args->arg;
|
||||
sus_heapFree(args);
|
||||
proc(arg2);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
sus_Bool sus_threadNew(sus_threadProc proc, void *arg) {
|
||||
sus_thread_args *args = (sus_thread_args *) sus_heapAlloc(sizeof(sus_thread_args));
|
||||
args->proc = proc;
|
||||
args->arg = arg;
|
||||
|
||||
pthread_t thread;
|
||||
if(pthread_create(&thread, NULL, uwu_runThread, args)) {
|
||||
sus_heapFree(args);
|
||||
return sus_False;
|
||||
}else {
|
||||
return sus_True;
|
||||
}
|
||||
}
|
||||
|
||||
void sus_threadSleep(unsigned long seconds) {
|
||||
sleep(seconds);
|
||||
}
|
1
tests/System Abstraction/5/.gitignore
vendored
Normal file
1
tests/System Abstraction/5/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
run
|
5
tests/System Abstraction/5/compile.sh
Executable file
5
tests/System Abstraction/5/compile.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
if [ ! -d run ]; then
|
||||
mkdir run
|
||||
fi
|
||||
gcc -g threadsTest.c "../../../System Abstraction/linux/cdb_file.c" "../../../System Abstraction/linux/cdb_memroy.c" "../../../System Abstraction/linux/cdb_thread.c" -o run/threadsTest
|
10
tests/System Abstraction/5/run.sh
Executable file
10
tests/System Abstraction/5/run.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
./compile.sh
|
||||
cd run
|
||||
|
||||
# Test 1
|
||||
echo "-- Test 1"
|
||||
./threadsTest
|
||||
|
||||
cd ..
|
Loading…
Reference in New Issue
Block a user