From 3b75e079a8d95c53628740f32e06dbe83b88f328 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 12 Apr 2019 16:50:24 +0200 Subject: [PATCH] CODING_STYLE: split out section about deadlocks --- docs/CODING_STYLE.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/CODING_STYLE.md b/docs/CODING_STYLE.md index 6a743fb493..017a26c696 100644 --- a/docs/CODING_STYLE.md +++ b/docs/CODING_STYLE.md @@ -73,14 +73,6 @@ title: Coding Style - To minimize strict aliasing violations, we prefer unions over casting. -- Do not issue NSS requests (that includes user name and host name - lookups) from PID 1 as this might trigger deadlocks when those - lookups involve synchronously talking to services that we would need - to start up. - -- Do not synchronously talk to any other service from PID 1, due to - risk of deadlocks. - - Be exceptionally careful when formatting and parsing floating point numbers. Their syntax is locale dependent (i.e. `5.000` in en_US is generally understood as 5, while in de_DE as 5000.). @@ -419,6 +411,15 @@ title: Coding Style headers (i.e those in `src/systemd/sd-*.h`) use integers after all, as `bool` is C99 and in our public APIs we try to stick to C89 (with a few extension). +## Deadlocks + +- Do not issue NSS requests (that includes user name and host name lookups) + from PID 1 as this might trigger deadlocks when those lookups involve + synchronously talking to services that we would need to start up. + +- Do not synchronously talk to any other service from PID 1, due to risk of + deadlocks. + ## File Descriptors - When you allocate a file descriptor, it should be made `O_CLOEXEC` right from