up
This commit is contained in:
		
							parent
							
								
									163188a814
								
							
						
					
					
						commit
						3a07a9b5ed
					
				
							
								
								
									
										2
									
								
								examples/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								examples/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| a.out | ||||
| a.exe | ||||
							
								
								
									
										11
									
								
								examples/comp_run_lin.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								examples/comp_run_lin.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,11 @@ | ||||
| echo -n "File: " | ||||
| read file | ||||
| 
 | ||||
| while true | ||||
| do | ||||
| clear && gcc $file && ./a.out | ||||
| echo "----------------" | ||||
| echo "Programm ended." | ||||
| echo "----------------" | ||||
| read _ | ||||
| done | ||||
							
								
								
									
										11
									
								
								examples/comp_run_win.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								examples/comp_run_win.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,11 @@ | ||||
| echo -n "File: " | ||||
| read file | ||||
| 
 | ||||
| while true | ||||
| do | ||||
| clear && x86_64-w64-mingw32-gcc $file && wine a.exe | ||||
| echo "----------------" | ||||
| echo "Programm ended." | ||||
| echo "----------------" | ||||
| read _ | ||||
| done | ||||
							
								
								
									
										26
									
								
								examples/threads.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								examples/threads.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| 
 | ||||
| #include "../libs/threads.h" | ||||
| 
 | ||||
| void* task() { | ||||
| 	while (1) { | ||||
| 		printf("Background task running\n"); | ||||
| 		wait(1); | ||||
| 	} | ||||
| 	return NULL; | ||||
| } | ||||
| 
 | ||||
| int main() { | ||||
| 	void* thread_handle; | ||||
| 	start_thread(&thread_handle, task); | ||||
| 	 | ||||
| 	printf("Main program continues\n"); | ||||
| 	wait(5); | ||||
| 
 | ||||
| 	kill_thread(thread_handle); | ||||
| 
 | ||||
| 	printf("Background task killed\n"); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
							
								
								
									
										10
									
								
								examples/wait.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								examples/wait.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| #include "../libs/time.h" | ||||
| 
 | ||||
| int main() { | ||||
| 	printf("Wait 5 seconds...\n"); | ||||
| 	wait(5); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
							
								
								
									
										38
									
								
								libs/threads.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								libs/threads.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | ||||
| #ifdef _WIN32 | ||||
| #include <windows.h> | ||||
| #else | ||||
| #include <pthread.h> | ||||
| #include <unistd.h>  | ||||
| #endif | ||||
| 
 | ||||
| #include <stdio.h> | ||||
| #include "time.h" | ||||
| 
 | ||||
| void start_thread(void** thread_handle, void* (*task)(void*)) { | ||||
| #ifdef _WIN32 | ||||
| 	HANDLE thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)task, NULL, 0, NULL); | ||||
| 	if (thread == NULL) { | ||||
| 		fprintf(stderr, "Failed to create thread\n"); | ||||
| 	} | ||||
| 	*thread_handle = thread; | ||||
| #else | ||||
| 	pthread_t thread; | ||||
| 	if (pthread_create(&thread, NULL, task, NULL) != 0) { | ||||
| 		fprintf(stderr, "Failed to create thread\n"); | ||||
| 	} | ||||
| 	pthread_detach(thread); | ||||
| 	*thread_handle = (void*)thread; | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| #ifdef _WIN32 | ||||
| void kill_thread(void* thread_handle) { | ||||
|         HANDLE thread = (HANDLE)thread_handle; | ||||
|         TerminateThread(thread, 0); | ||||
| } | ||||
| #else | ||||
| void kill_thread(void* thread_handle) { | ||||
|         pthread_t thread = (pthread_t)thread_handle; | ||||
|         pthread_cancel(thread); | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										13
									
								
								libs/time.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								libs/time.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| #ifdef _WIN32 | ||||
| #include <windows.h> | ||||
| #else | ||||
| #include <unistd.h>  | ||||
| #endif | ||||
| 
 | ||||
| void wait(int time) { | ||||
| #ifdef _WIN32 | ||||
| 	Sleep(time*1000); | ||||
| #else | ||||
| 	sleep(time); | ||||
| #endif | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user