diff options
author | marha <marha@users.sourceforge.net> | 2013-01-11 08:00:45 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-01-11 08:00:45 +0100 |
commit | ddc05759f098f06bd93253a7bffe38640963dfb3 (patch) | |
tree | fd0ae943233033cda2bfe50dd097532a4cf5c0b9 /fontconfig/test/test-pthread.c | |
parent | 8a26872f0c9102cb357345eca24a4bf7401bbe70 (diff) | |
download | vcxsrv-ddc05759f098f06bd93253a7bffe38640963dfb3.tar.gz vcxsrv-ddc05759f098f06bd93253a7bffe38640963dfb3.tar.bz2 vcxsrv-ddc05759f098f06bd93253a7bffe38640963dfb3.zip |
fontconfig libX11 mesa mkfontscale xserver git update 11 jan 2013
fontconfig: 0831c1770e4bac7269a190936bbb0529d747e233
libX11: 0b148750027fd0557c5ed93afda861ddf4b92e0f
mkfontscale: 9cbe3256bc932b82f2435b23cda0931f4f5f5ba2
xserver: 6703a7c7cf1a349c137e247a0c8eb462ff7b07be
mesa: babab2876080af0fe65249dff559244aebd0b87e
Diffstat (limited to 'fontconfig/test/test-pthread.c')
-rw-r--r-- | fontconfig/test/test-pthread.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/fontconfig/test/test-pthread.c b/fontconfig/test/test-pthread.c new file mode 100644 index 000000000..7701a24f7 --- /dev/null +++ b/fontconfig/test/test-pthread.c @@ -0,0 +1,79 @@ +/* Code originally from Raimund Steger. */ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <pthread.h> +#include <fontconfig/fontconfig.h> + +#define NTHR 100 +#define NTEST 100 + +struct thr_arg_s +{ + int thr_num; +}; + +static void test_match(int thr_num,int test_num) +{ + FcPattern *pat; + FcPattern *match; + FcResult result; + + FcInit(); + + pat = FcNameParse((const FcChar8 *)"New Century Schoolbook"); + + FcConfigSubstitute(0,pat,FcMatchPattern); + FcDefaultSubstitute(pat); + + match = FcFontMatch(0,pat,&result); + + FcPatternDestroy(pat); + FcPatternDestroy(match); +} + +static void *run_test_in_thread(void *arg) +{ + struct thr_arg_s *thr_arg=(struct thr_arg_s *)arg; + int thread_num = thr_arg->thr_num; + int i=0; + + for(;i<NTEST;i++) test_match(thread_num,i); + + printf("Thread %d: done\n",thread_num); + + return NULL; +} + +int main(int argc,char **argv) +{ + pthread_t threads[NTHR]; + int i, j; + + printf("Creating %d threads\n",NTHR); + + for(i = 0;i<NTHR;i++) + { + struct thr_arg_s thr_arg; + int result; + thr_arg.thr_num=i; + result = pthread_create(&threads[i],NULL,run_test_in_thread, + (void *)&thr_arg); + if(result!=0) + { + fprintf(stderr,"Cannot create thread %d\n",i); + break; + } + } + + for(j=0;j<i;j++) + { + pthread_join(threads[j],NULL); + printf("Joined thread %d\n",j); + } + + FcFini(); + + return 0; +} |