@@ -32,6 +32,8 @@ static int grab_excl_lock_file(const char *backup_dir, const char *backup_id, bo
32
32
static int grab_shared_lock_file (pgBackup * backup );
33
33
static int wait_shared_owners (pgBackup * backup );
34
34
35
+
36
+ static void unlink_lock_atexit (bool fatal ,void * userdata );
35
37
static void unlock_backup (const char * backup_dir ,const char * backup_id ,bool exclusive );
36
38
static void release_excl_lock_file (const char * backup_dir );
37
39
static void release_shared_lock_file (const char * backup_dir );
@@ -83,8 +85,8 @@ timelineInfoFree(void *tliInfo)
83
85
}
84
86
85
87
/* Iterate over locked backups and unlock them */
86
- static void
87
- unlink_lock_atexit (void )
88
+ void
89
+ unlink_lock_atexit (bool unused_fatal , void * unused_userdata )
88
90
{
89
91
int i ;
90
92
@@ -94,7 +96,7 @@ unlink_lock_atexit(void)
94
96
for (i = 0 ;i < parray_num (locks );i ++ )
95
97
{
96
98
LockInfo * lock = (LockInfo * )parray_get (locks ,i );
97
- unlock_backup (lock -> backup_dir ,lock -> backup_dir ,lock -> exclusive );
99
+ unlock_backup (lock -> backup_dir ,lock -> backup_id ,lock -> exclusive );
98
100
}
99
101
100
102
parray_walk (locks ,pg_free );
@@ -267,7 +269,7 @@ lock_backup(pgBackup *backup, bool strict, bool exclusive)
267
269
*/
268
270
if (!backup_lock_exit_hook_registered )
269
271
{
270
- atexit (unlink_lock_atexit );
272
+ pgut_atexit_push (unlink_lock_atexit , NULL );
271
273
backup_lock_exit_hook_registered = true;
272
274
}
273
275