|
37 | 37 | * |
38 | 38 | * |
39 | 39 | * IDENTIFICATION |
40 | | - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.578 2009/05/02 22:02:37 tgl Exp $ |
| 40 | + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.579 2009/05/0402:24:17 alvherre Exp $ |
41 | 41 | * |
42 | 42 | * NOTES |
43 | 43 | * |
@@ -143,6 +143,7 @@ typedef struct bkend |
143 | 143 | longcancel_key;/* cancel key for cancels for this backend */ |
144 | 144 | boolis_autovacuum;/* is it an autovacuum process? */ |
145 | 145 | booldead_end;/* is it going to send an error and quit? */ |
| 146 | +Dlelemelem;/* self pointer into BackendList */ |
146 | 147 | }Backend; |
147 | 148 |
|
148 | 149 | staticDllist*BackendList; |
@@ -2459,7 +2460,6 @@ CleanupBackend(int pid, |
2459 | 2460 | #endif |
2460 | 2461 | DLRemove(curr); |
2461 | 2462 | free(bp); |
2462 | | -DLFreeElem(curr); |
2463 | 2463 | break; |
2464 | 2464 | } |
2465 | 2465 | } |
@@ -2506,7 +2506,6 @@ HandleChildCrash(int pid, int exitstatus, const char *procname) |
2506 | 2506 | #endif |
2507 | 2507 | DLRemove(curr); |
2508 | 2508 | free(bp); |
2509 | | -DLFreeElem(curr); |
2510 | 2509 | /* Keep looping so we can signal remaining backends */ |
2511 | 2510 | } |
2512 | 2511 | else |
@@ -3014,7 +3013,8 @@ BackendStartup(Port *port) |
3014 | 3013 | bn->is_autovacuum= false; |
3015 | 3014 | bn->dead_end= (port->canAcceptConnections!=CAC_OK&& |
3016 | 3015 | port->canAcceptConnections!=CAC_WAITBACKUP); |
3017 | | -DLAddHead(BackendList,DLNewElem(bn)); |
| 3016 | +DLInitElem(&bn->elem,bn); |
| 3017 | +DLAddHead(BackendList,&bn->elem); |
3018 | 3018 | #ifdefEXEC_BACKEND |
3019 | 3019 | if (!bn->dead_end) |
3020 | 3020 | ShmemBackendArrayAdd(bn); |
|