|
14 | 14 | #include<time.h>
|
15 | 15 | #include<sys/time.h>
|
16 | 16 | #include<unistd.h>
|
17 |
| -#include<string.h> |
18 | 17 |
|
19 | 18 | #ifdefWIN32
|
20 | 19 | #defineFSYNC_FILENAME"./test_fsync.out"
|
21 | 20 | #else
|
22 | 21 | #defineFSYNC_FILENAME"/var/tmp/test_fsync.out"
|
23 | 22 | #endif
|
24 | 23 |
|
25 |
| -/* This logic comes from src/backend/access/transam/xlog.c where it's |
26 |
| - better documented */ |
27 |
| -#ifdefO_DIRECT |
28 |
| -#definePG_O_DIRECT O_DIRECT |
29 |
| -#else |
30 |
| -#definePG_O_DIRECT 0 |
31 |
| -#endif |
32 |
| - |
| 24 | +/* O_SYNC and O_FSYNC are the same */ |
33 | 25 | #if defined(O_SYNC)
|
34 |
| -#defineBARE_OPEN_SYNC_FLAGO_SYNC |
| 26 | +#defineOPEN_SYNC_FLAGO_SYNC |
35 | 27 | #elif defined(O_FSYNC)
|
36 |
| -#defineBARE_OPEN_SYNC_FLAG O_FSYNC |
37 |
| -#endif |
38 |
| -#ifdefBARE_OPEN_SYNC_FLAG |
39 |
| -#defineOPEN_SYNC_FLAG (BARE_OPEN_SYNC_FLAG | PG_O_DIRECT) |
| 28 | +#defineOPEN_SYNC_FLAGO_FSYNC |
| 29 | +#elif defined(O_DSYNC) |
| 30 | +#defineOPEN_DATASYNC_FLAGO_DSYNC |
40 | 31 | #endif
|
41 | 32 |
|
42 |
| -#if defined(O_DSYNC) |
43 | 33 | #if defined(OPEN_SYNC_FLAG)
|
44 |
| -#ifO_DSYNC!=BARE_OPEN_SYNC_FLAG |
45 |
| -#defineOPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT) |
46 |
| -#endif |
47 |
| -#else |
48 |
| -#defineOPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT) |
| 34 | +#if defined(O_DSYNC)&& (O_DSYNC!=OPEN_SYNC_FLAG) |
| 35 | +#defineOPEN_DATASYNC_FLAGO_DSYNC |
49 | 36 | #endif
|
50 | 37 | #endif
|
51 | 38 |
|
52 |
| - |
53 | 39 | #defineWAL_FILE_SIZE(16 * 1024 * 1024)
|
54 | 40 |
|
55 | 41 | voiddie(char*str);
|
|