1> getenv() can be safely called from a multi-thread program.
2> However, care must still be taken when using getenv() and putenv(3C) in a multi-thread program.
3> These routines examine and modify the environment list.
4> This list is shared by all threads in a program.
5> The system prevents the list from being accessed simultaneously by two different threads.
6> However, it does not prevent two threads from successively accessing the environment list using getenv() or putenv(3C)
1a.) Does Line 5 means that at any one time, the system(OS) allows only one thread to read the ENV list?
1b.) If this is true, in the situation when there are many processes trying getenv() at the same time, will that cause a bottleneck (caused by queuing)?
2.) What does Line 6 means? Does it mean 2 differents thread can access ENV list sqeuentially?
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
5. means that only one thread at a time can call getenv(), the kernel blocks other theads from calling when the symbol is in use. 6. means another thread can call getenv() when it returns from a process and is free.