diff options
Diffstat (limited to 'newlib/libc/stdlib/envlock.c')
-rw-r--r-- | newlib/libc/stdlib/envlock.c | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/newlib/libc/stdlib/envlock.c b/newlib/libc/stdlib/envlock.c deleted file mode 100644 index ce7ae2e26..000000000 --- a/newlib/libc/stdlib/envlock.c +++ /dev/null @@ -1,61 +0,0 @@ -/* -FUNCTION -<<__env_lock>>, <<__env_unlock>>---lock environ variable - -INDEX - __env_lock -INDEX - __env_unlock - -ANSI_SYNOPSIS - #include <envlock.h> - void __env_lock (struct _reent *<[reent]>); - void __env_unlock (struct _reent *<[reent]>); - -TRAD_SYNOPSIS - void __env_lock(<[reent]>) - struct _reent *<[reent]>; - - void __env_unlock(<[reent]>) - struct _reent *<[reent]>; - -DESCRIPTION -The <<setenv>> family of routines call these functions when they need to -modify the environ variable. The version of these routines supplied in the -library use the lock API defined in sys/lock.h. If multiple threads of -execution can call <<setenv>>, or if <<setenv>> can be called reentrantly, -then you need to define your own versions of these functions in order to -safely lock the memory pool during a call. If you do not, the memory pool -may become corrupted. - -A call to <<setenv>> may call <<__env_lock>> recursively; that is, -the sequence of calls may go <<__env_lock>>, <<__env_lock>>, -<<__env_unlock>>, <<__env_unlock>>. Any implementation of these -routines must be careful to avoid causing a thread to wait for a lock -that it already holds. -*/ - -#include "envlock.h" -#include <sys/lock.h> - -#ifndef __SINGLE_THREAD__ -__LOCK_INIT_RECURSIVE(static, __env_lock_object); -#endif - -void -__env_lock (ptr) - struct _reent *ptr; -{ -#ifndef __SINGLE_THREAD__ - __lock_acquire_recursive (__env_lock_object); -#endif -} - -void -__env_unlock (ptr) - struct _reent *ptr; -{ -#ifndef __SINGLE_THREAD__ - __lock_release_recursive (__env_lock_object); -#endif -} |