|
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); |
|