Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

template.c

Go to the documentation of this file.
00001 
00013 #include <errno.h>
00014 #include <pthread.h>
00015 #include "sigsafe_internal.h"
00016 
00017 #ifdef _THREAD_SAFE
00018 PRIVATE_DEF(pthread_key_t sigsafe_key_);
00019 #else
00020 PRIVATE_DEF(struct sigsafe_tsd_ *sigsafe_data_);
00021 #endif
00022 
00023 ssize_t sigsafe_read_template(int fd, char *buf, size_t len) {
00024 #ifdef _THREAD_SAFE
00025     struct sigsafe_tsd_ *sigsafe_data_ = pthread_getspecific(sigsafe_key_);
00026 #endif
00027     if (sigsafe_data_ == NULL || sigsafe_data_->signal_received == 0) {
00028         return read(fd, buf, len);
00029     }
00030     return -EINTR;
00031 }

Generated on Fri Feb 4 11:13:32 2005 for sigsafe by doxygen 1.3.5