|
37 | 37 | * |
38 | 38 | * |
39 | 39 | * IDENTIFICATION |
40 | | - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.452 2005/06/09 22:01:12 tgl Exp $ |
| 40 | + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.453 2005/06/14 21:04:39 momjian Exp $ |
41 | 41 | * |
42 | 42 | * NOTES |
43 | 43 | * |
@@ -222,6 +222,9 @@ static bool FatalError = false; /* T if recovering from backend crash */ |
222 | 222 | bool ClientAuthInProgress = false; /* T during new-client |
223 | 223 | * authentication */ |
224 | 224 |
|
| 225 | +/* Backend startup time */ |
| 226 | +TimestampTz StartTime; |
| 227 | + |
225 | 228 | /* |
226 | 229 | * State for assigning random salts and cancel keys. |
227 | 230 | * Also, the global MyCancelKey passes the cancel key assigned to a given |
@@ -330,6 +333,7 @@ typedef struct |
330 | 333 | InheritableSocket pgStatPipe0; |
331 | 334 | InheritableSocket pgStatPipe1; |
332 | 335 | pid_t PostmasterPid; |
| 336 | + TimestampTz StartTime; |
333 | 337 | #ifdef WIN32 |
334 | 338 | HANDLE PostmasterHandle; |
335 | 339 | HANDLE initial_signal_pipe; |
@@ -372,6 +376,9 @@ PostmasterMain(int argc, char *argv[]) |
372 | 376 | char *userDoption = NULL; |
373 | 377 | int i; |
374 | 378 |
|
| 379 | + AbsoluteTime StartTimeSec; /* integer part */ |
| 380 | + int StartTimeUSec; /* microsecond part */ |
| 381 | + |
375 | 382 | /* This will call exit() if strdup() fails. */ |
376 | 383 | progname = get_progname(argv[0]); |
377 | 384 |
|
@@ -914,6 +921,12 @@ PostmasterMain(int argc, char *argv[]) |
914 | 921 | */ |
915 | 922 | StartupPID = StartupDataBase(); |
916 | 923 |
|
| 924 | + /* |
| 925 | + * Get start up time |
| 926 | + */ |
| 927 | + StartTimeSec = GetCurrentAbsoluteTimeUsec(&StartTimeUSec); |
| 928 | + StartTime = AbsoluteTimeUsecToTimestampTz(StartTimeSec, StartTimeUSec); |
| 929 | + |
917 | 930 | status = ServerLoop(); |
918 | 931 |
|
919 | 932 | /* |
@@ -3603,6 +3616,7 @@ save_backend_variables(BackendParameters *param, Port *port, |
3603 | 3616 | write_inheritable_socket(¶m->pgStatPipe1, pgStatPipe[1], childPid); |
3604 | 3617 |
|
3605 | 3618 | param->PostmasterPid = PostmasterPid; |
| 3619 | + param->StartTime = StartTime; |
3606 | 3620 |
|
3607 | 3621 | #ifdef WIN32 |
3608 | 3622 | param->PostmasterHandle = PostmasterHandle; |
@@ -3805,6 +3819,7 @@ restore_backend_variables(BackendParameters *param, Port *port) |
3805 | 3819 | read_inheritable_socket(&pgStatPipe[1], ¶m->pgStatPipe1); |
3806 | 3820 |
|
3807 | 3821 | PostmasterPid = param->PostmasterPid; |
| 3822 | + StartTime = param->StartTime; |
3808 | 3823 |
|
3809 | 3824 | #ifdef WIN32 |
3810 | 3825 | PostmasterHandle = param->PostmasterHandle; |
|
0 commit comments