Remove unused functions and optimize data race checking for mem* operations
[c11tester.git] / pipe.cc
1 #include "common.h"
2 #include <unistd.h>
3 #include "model.h"
4 #include "snapshot-interface.h"
5 #include <dlfcn.h>
6 #include <errno.h>
7
8 static int (*pipe_init_p)(int filep[2]) = NULL;
9
10 int pipe(int fildes[2]) {
11         createModelIfNotExist();
12         if (!pipe_init_p) {
13                 pipe_init_p = (int (*)(int fildes[2]))dlsym(RTLD_NEXT, "pipe");
14                 char *error = dlerror();
15                 if (error != NULL) {
16                         fputs(error, stderr);
17                         exit(EXIT_FAILURE);
18                 }
19         }
20         return pipe_init_p(fildes);
21 }