respect C standards
pthread_create returns pthread_t not pid_t!

We had undefined behaviors with gcc 4.8
parse file using mmap