java update
[lttv.git] / ltt-usertrace / sample-thread-slow.c
CommitLineData
3d57eb5b 1
2#include <pthread.h>
3#include <stdio.h>
4#include <unistd.h>
5#include <stdlib.h>
6
7#define LTT_TRACE
d5970cd7 8//this one is a non blocking sample (not #define LTT_BLOCKING 1)
3d57eb5b 9#include <ltt/ltt-facility-user_generic.h>
10
11
12void *thr1(void *arg)
13{
141274aa 14 printf("thread 1, thread id : %lu, pid %lu\n", pthread_self(), getpid());
3d57eb5b 15
141274aa 16 while(1) {
3d57eb5b 17 trace_user_generic_string("Hello world! Have a nice day.");
18 sleep(2);
19 }
141274aa 20 pthread_exit((void*)1);
3d57eb5b 21}
22
141274aa 23
24/* Example of a _bad_ thread, which still works with the tracing */
3d57eb5b 25void *thr2(void *arg)
26{
141274aa 27 printf("thread 2, thread id : %lu, pid %lu\n", pthread_self(), getpid());
3d57eb5b 28 sleep(1);
141274aa 29 while(1) {
3d57eb5b 30 trace_user_generic_string("Hello world! Have a nice day.");
141274aa 31 sleep(2);
32 }
33 return ((void*)2);
3d57eb5b 34}
35
36
37int main()
38{
39 int err;
40 pthread_t tid1, tid2;
41 void *tret;
42
43 printf("Will trace the following string : Hello world! Have a nice day.\n");
44 printf("Press CTRL-C to stop.\n");
141274aa 45 printf("No file is created with this example : it logs through a kernel\n");
46 printf("system call. See the LTTng lttctl command to start tracing.\n\n");
2c86dabf 47
141274aa 48 printf("thread main, thread id : %lu, pid %lu\n", pthread_self(), getpid());
49 err = pthread_create(&tid1, NULL, thr1, NULL);
50 if(err!=0) exit(1);
3d57eb5b 51
141274aa 52 err = pthread_create(&tid2, NULL, thr2, NULL);
53 if(err!=0) exit(1);
3d57eb5b 54
141274aa 55 err = pthread_join(tid1, &tret);
56 if(err!= 0) exit(1);
3d57eb5b 57
141274aa 58 err = pthread_join(tid2, &tret);
59 if(err!= 0) exit(1);
60
61 return 0;
3d57eb5b 62}
This page took 0.028055 seconds and 4 git commands to generate.