From bb74bfbc225df6f2cea060ddd84862f3c627d84e Mon Sep 17 00:00:00 2001 From: Christian Thaeter Date: Fri, 14 Nov 2008 02:44:18 +0100 Subject: [PATCH] fixup handle_acquire/_release for file and filedescriptor --- src/backend/file.c | 10 +++++----- src/backend/filedescriptor.c | 13 ++++++++++++- src/backend/filedescriptor.h | 5 ++++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/backend/file.c b/src/backend/file.c index 5e64abf35..e4c88189a 100644 --- a/src/backend/file.c +++ b/src/backend/file.c @@ -85,7 +85,7 @@ lumiera_file_handle_acquire (LumieraFile self) REQUIRE (self->descriptor); REQUIRE (lumiera_fhcache); - return lumiera_filedescriptor_handle (self->descriptor); + return lumiera_filedescriptor_handle_acquire (self->descriptor); } @@ -93,11 +93,11 @@ void lumiera_file_handle_release (LumieraFile self) { TRACE (file); + REQUIRE (self); + REQUIRE (self->descriptor); + REQUIRE (lumiera_fhcache); - LUMIERA_MUTEX_SECTION (file, &self->descriptor->lock) - { - lumiera_filehandlecache_checkin (lumiera_fhcache, self->descriptor->handle); - } + return lumiera_filedescriptor_handle_release (self->descriptor); } diff --git a/src/backend/filedescriptor.c b/src/backend/filedescriptor.c index 59f89741c..f2c35beee 100644 --- a/src/backend/filedescriptor.c +++ b/src/backend/filedescriptor.c @@ -203,7 +203,7 @@ lumiera_filedescriptor_release (LumieraFiledescriptor self, const char* name, LL int -lumiera_filedescriptor_handle (LumieraFiledescriptor self) +lumiera_filedescriptor_handle_acquire (LumieraFiledescriptor self) { TRACE (filedescriptor); @@ -224,6 +224,17 @@ lumiera_filedescriptor_handle (LumieraFiledescriptor self) } +void +lumiera_filedescriptor_handle_release (LumieraFiledescriptor self) +{ + TRACE (filedescriptor); + REQUIRE (self->handle); + + LUMIERA_MUTEX_SECTION (filedescriptor, &self->lock) + lumiera_filehandlecache_checkin (lumiera_fhcache, self->handle); +} + + const char* lumiera_filedescriptor_name (LumieraFiledescriptor self) { diff --git a/src/backend/filedescriptor.h b/src/backend/filedescriptor.h index 47aa41f9e..a74e8c47d 100644 --- a/src/backend/filedescriptor.h +++ b/src/backend/filedescriptor.h @@ -111,7 +111,10 @@ void lumiera_filedescriptor_release (LumieraFiledescriptor self, const char* name, LList filenode); int -lumiera_filedescriptor_handle (LumieraFiledescriptor self); +lumiera_filedescriptor_handle_acquire (LumieraFiledescriptor self); + +void +lumiera_filedescriptor_handle_release (LumieraFiledescriptor self); const char* lumiera_filedescriptor_name (LumieraFiledescriptor self);