Generated Code: |
Function-scope statics | Thread-Restricted C. User owns local
variable. | Thread-Restricted C. User owns the local
variable. |
File-scope static and globals | Thread-Restricted C for dynamic loading
of shared libraries. Ordering of initialization may be more
of a problem. | Thread-Restricted C for dynamic loading
of shared libraries. Ordering of initialization may be more
of a problem. |
+eh code | Thread-Restricted A. Thread-Unusable
unless other threads are just C. | Thread-Safe Performance Constrained. |
libC
interfaces: |
+eh ([re]throw) | Thread-Restricted A. Thread-Restricted
B if only one thread is written in C++. | Thread-Safe Performance Constrained. |
I/O (iostreams,
strstream, etc.) | Thread-Restricted C. | Thread-Safe Performance Constrained.
Tuned if using predefined streams: cin, cout,
cerr, clog. Otherwise Thread-Restricted
C. |
vec new/delete | Thread-Restricted C. | Thread-Safe Performance Constrained. |
cxxshl_load
and cxxshl_unload | Thread-Restricted C. | Thread-Restricted C. |
Others | Probably references no statics/globals
so completely safe. libC is not
fork-safe. It assumes no cancellations are possible. | Probably references no statics/globals
so completely safe. libC is not fork-safe.
It assumes no cancellations are possible. |