threads in preprocessor