summaryrefslogtreecommitdiff
path: root/libtrivfs/trivfs.h
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-06 19:07:13 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-26 13:17:16 +0200
commit1d1da90042d2ee7a8215dc6291b54bc1ebe59fe4 (patch)
tree54c00f70a5703b40bb8243a6d76afd024c50cdaf /libtrivfs/trivfs.h
parent5b039a12bf5cfc9c65b8e169ed4503e306f971f3 (diff)
libtrivfs: lock-less reference counting for trivfs_peropen objects
* libtrivfs/trivfs.h (struct trivfs_peropen): Use refcount_t for field refcnt. (struct trivfs_control): Remove unused field lock. * libtrivfs/cntl-create.c (trivfs_create_control): Drop the mutex initialization. * libtrivfs/io-reauthenticate.c (trivfs_S_io_reauthenticate): Adjust accordingly. * libtrivfs/io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise. * libtrivfs/open.c (trivfs_open): Initialize refcnt. * libtrivfs/protid-clean.c (trivfs_clean_protid): Likewise. * libtrivfs/protid-dup.c (trivfs_protid_dup): Likewise.
Diffstat (limited to 'libtrivfs/trivfs.h')
-rw-r--r--libtrivfs/trivfs.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libtrivfs/trivfs.h b/libtrivfs/trivfs.h
index bb456ffa..89023383 100644
--- a/libtrivfs/trivfs.h
+++ b/libtrivfs/trivfs.h
@@ -24,6 +24,7 @@
#include <mach/mach.h>
#include <hurd/ports.h>
#include <hurd/iohelp.h>
+#include <refcount.h>
struct trivfs_protid
{
@@ -41,14 +42,13 @@ struct trivfs_peropen
{
void *hook; /* for user use */
int openmodes;
- int refcnt;
+ refcount_t refcnt;
struct trivfs_control *cntl;
};
struct trivfs_control
{
struct port_info pi;
- pthread_mutex_t lock;
struct port_class *protid_class;
struct port_bucket *protid_bucket;
mach_port_t filesys_id;