};
static pthread_mutex_t static_file_lock = PTHREAD_MUTEX_INITIALIZER;
-enum nss_status _nss_cash_setgrent(int x) {
- (void)x;
-
+static void internal_unmap_static_file(void) {
pthread_mutex_lock(&static_file_lock);
- // Unmap is necessary to detect changes when the file was replaced on
- // disk
unmap_file(&static_file);
- // getgrent_r will open the file if necessary when called
pthread_mutex_unlock(&static_file_lock);
+}
+enum nss_status _nss_cash_setgrent(int x) {
+ (void)x;
+
+ // Unmap is necessary to detect changes when the file was replaced on
+ // disk; getgrent_r will open the file if necessary when called
+ internal_unmap_static_file();
return NSS_STATUS_SUCCESS;
}
enum nss_status _nss_cash_endgrent(void) {
- pthread_mutex_lock(&static_file_lock);
- unmap_file(&static_file);
- pthread_mutex_unlock(&static_file_lock);
-
+ internal_unmap_static_file();
return NSS_STATUS_SUCCESS;
}
};
static pthread_mutex_t static_file_lock = PTHREAD_MUTEX_INITIALIZER;
-enum nss_status _nss_cash_setpwent(int x) {
- (void)x;
-
+static void internal_unmap_static_file(void) {
pthread_mutex_lock(&static_file_lock);
- // Unmap is necessary to detect changes when the file was replaced on
- // disk
unmap_file(&static_file);
- // getpwent_r will open the file if necessary when called
pthread_mutex_unlock(&static_file_lock);
+}
+enum nss_status _nss_cash_setpwent(int x) {
+ (void)x;
+
+ // Unmap is necessary to detect changes when the file was replaced on
+ // disk; getpwent_r will open the file if necessary when called
+ internal_unmap_static_file();
return NSS_STATUS_SUCCESS;
}
enum nss_status _nss_cash_endpwent(void) {
- pthread_mutex_lock(&static_file_lock);
- unmap_file(&static_file);
- pthread_mutex_unlock(&static_file_lock);
-
+ internal_unmap_static_file();
return NSS_STATUS_SUCCESS;
}