--- fakeroot-1.30.1/communicate.c 2022-01-17 23:42:20.000000000 +0300 +++ fakeroot-1.30.1/communicate.c.patch 2022-11-11 22:36:56.954338881 +0300 @@ -494,9 +494,9 @@ } } -void lock_comm_sd(void) +int lock_comm_sd(void) { - pthread_mutex_lock(&comm_sd_mutex); + return pthread_mutex_trylock(&comm_sd_mutex); } void unlock_comm_sd(void) @@ -654,12 +654,12 @@ void send_fakem(const struct fake_msg *buf) { - lock_comm_sd(); + if (!lock_comm_sd()) { + open_comm_sd(); + send_fakem_nr(buf); - open_comm_sd(); - send_fakem_nr(buf); - - unlock_comm_sd(); + unlock_comm_sd(); + } } static void get_fakem_nr(struct fake_msg *buf) @@ -694,13 +694,13 @@ void send_get_fakem(struct fake_msg *buf) { - lock_comm_sd(); + if (!lock_comm_sd()) { + open_comm_sd(); + send_fakem_nr(buf); + get_fakem_nr(buf); - open_comm_sd(); - send_fakem_nr(buf); - get_fakem_nr(buf); - - unlock_comm_sd(); + unlock_comm_sd(); + } } #endif /* FAKEROOT_FAKENET */