use void not opaque pthread_attr_t