Skip to content
Snippets Groups Projects
Commit 466b63c6 authored by antux18's avatar antux18
Browse files

Suite t3.

parent aa8d4f9d
Branches
No related merge requests found
...@@ -5,21 +5,22 @@ ...@@ -5,21 +5,22 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/wait.h> #include <sys/wait.h>
void* runner(void* pid) { void* runner(void* arg) {
printf("My TID is: %ld\nMy PID is: %d\n", pthread_self(), *((int*) pid)); printf("My TID is: %ld, my PID is: %d\n", pthread_self(), getpid());
pthread_exit(0); pthread_exit(0);
} }
pthread_t thread_gen(int* pid) { pthread_t thread_gen() {
pthread_t tid; pthread_t tid;
pthread_attr_t attr; pthread_attr_t attr;
pthread_attr_init(&attr); pthread_attr_init(&attr);
pthread_create(&tid, &attr, runner, (void*) pid); pthread_create(&tid, &attr, runner, NULL);
return tid; return tid;
} }
int main() { int main() {
int cpid1, cpid2; int cpid1, cpid2;
// Fork 1:
switch (cpid1 = fork()) { switch (cpid1 = fork()) {
case -1 : case -1 :
perror("error"); perror("error");
...@@ -27,8 +28,8 @@ int main() { ...@@ -27,8 +28,8 @@ int main() {
case 0 : case 0 :
// Child process: // Child process:
pthread_t tid1, tid2; pthread_t tid1, tid2;
tid1 = thread_gen(&cpid1); tid1 = thread_gen();
tid2 = thread_gen(&cpid1); tid2 = thread_gen();
pthread_join(tid1, NULL); pthread_join(tid1, NULL);
pthread_join(tid2, NULL); pthread_join(tid2, NULL);
exit(0); exit(0);
...@@ -39,6 +40,7 @@ int main() { ...@@ -39,6 +40,7 @@ int main() {
perror("error"); perror("error");
} }
} }
// Fork 2:
switch (cpid2 = fork()) { switch (cpid2 = fork()) {
case -1 : case -1 :
perror("error"); perror("error");
...@@ -46,9 +48,9 @@ int main() { ...@@ -46,9 +48,9 @@ int main() {
case 0 : case 0 :
// Child process: // Child process:
pthread_t tid1, tid2, tid3; pthread_t tid1, tid2, tid3;
tid1 = thread_gen(&cpid2); tid1 = thread_gen();
tid2 = thread_gen(&cpid2); tid2 = thread_gen();
tid3 = thread_gen(&cpid2); tid3 = thread_gen();
pthread_join(tid1, NULL); pthread_join(tid1, NULL);
pthread_join(tid2, NULL); pthread_join(tid2, NULL);
pthread_join(tid3, NULL); pthread_join(tid3, NULL);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment