aboutsummaryrefslogtreecommitdiffstats
path: root/man/el_init.3
diff options
context:
space:
mode:
authorMichał Łyszczek <michal.lyszczek@bofc.pl>2018-05-06 12:54:47 +0200
committerMichał Łyszczek <michal.lyszczek@bofc.pl>2018-05-06 12:54:51 +0200
commit64efa3fd8c29fb8a572740ba010f5b51d013c8a0 (patch)
tree681303a74259a52b52ca172f42822e2bd646d62f /man/el_init.3
parent139b36f884098cced07bd045e429b734dff0bef4 (diff)
downloadembedlog-64efa3fd8c29fb8a572740ba010f5b51d013c8a0.tar.gz
embedlog-64efa3fd8c29fb8a572740ba010f5b51d013c8a0.tar.bz2
embedlog-64efa3fd8c29fb8a572740ba010f5b51d013c8a0.zip
last time minor fixes
no_buildbot
Diffstat (limited to 'man/el_init.3')
-rw-r--r--man/el_init.327
1 files changed, 21 insertions, 6 deletions
diff --git a/man/el_init.3 b/man/el_init.3
index 7c81289..39fcee3 100644
--- a/man/el_init.3
+++ b/man/el_init.3
@@ -1,4 +1,4 @@
-.TH "el_init" "3" " 3 May 2018 (v0.3.0)" "bofc.pl"
+.TH "el_init" "3" " 6 May 2018 (v0.3.0)" "bofc.pl"
.SH NAME
.PP
.B el_init
@@ -17,17 +17,32 @@ There are two types of functions in
Functions that use global static structure inside library, these functions don't
accept
.I options
-argument, and are not thread-safe.
+argument.
.PP
Another type are functions that accept
.I options
argument. These functions are prefixed with
.BR el_o .
-Options functions are thread-safe provided that threads are working on different
-.I options
-objects and
+.PP
+All functions (options or not) are "line" thread-safe (provided that
.B \-\-enable\-reentrant
-is turned on.
+is turned on).
+That means library buffers whole line before it calls
+.B puts
+function, so lines in output will not overlap.
+.PP
+NOTE: this may not be entirely true for every operating system there is! Yes,
+.B embedlog
+will always buffer and print whole lines, but OS may, for example interrupt
+.B puts
+call from thread1, and call
+.B puts
+from thread2.
+In such case output will be mangled with 2 different lines.
+While this situation is very rare, it's only fair to mention it.
+If in doubt, check
+.B stdio
+implementation in your operating system.
.PP
.BR el_init (3)
initializes static global option structure. This option structure is used by all