diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-03-03 20:48:20 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-04-02 17:44:00 +0200 |
commit | b7cbdde8854ee4c51ec9cd49ce639bd02d646355 (patch) | |
tree | 7c1cf1b5011763d20584733d2bb7be1b586b667a /libpager/seqnos.c | |
parent | 64b5d358fcaa039ca2e7634aceaa5ed4c3a10cc4 (diff) | |
download | hurd-b7cbdde8854ee4c51ec9cd49ce639bd02d646355.tar.gz hurd-b7cbdde8854ee4c51ec9cd49ce639bd02d646355.tar.bz2 hurd-b7cbdde8854ee4c51ec9cd49ce639bd02d646355.zip |
libpager: fix receiver lookups
Previously, the receiver lookup was done manually in all the server
functions. Use mig translator functions instead.
* libpager/mig-decls.h: New file.
* libpager/mig-mutate.h: Likewise.
* libpager/Makefile (MIGSFLAGS): Include mig-mutate.h.
* libpager/chg-compl.c: Fix receiver lookups.
* libpager/data-request.c: Likewise.
* libpager/data-return.c: Likewise.
* libpager/data-unlock.c: Likewise.
* libpager/lock-completed.c: Likewise.
* libpager/object-init.c: Likewise.
* libpager/object-terminate.c: Likewise.
* libpager/stubs.c: Likewise.
* libpager/seqnos.c (_pager_update_seqno): Move the actual
functionality...
(_pager_update_seqno_p): ... into a new function that can be called
with a pointer to struct pager.
* libpager/priv.h (_pager_update_seqno_p): New declaration.
Diffstat (limited to 'libpager/seqnos.c')
-rw-r--r-- | libpager/seqnos.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libpager/seqnos.c b/libpager/seqnos.c index 77bfbf21..cab2f33d 100644 --- a/libpager/seqnos.c +++ b/libpager/seqnos.c @@ -57,13 +57,23 @@ _pager_update_seqno (mach_port_t object, struct pager *p; p = ports_lookup_port (0, object, _pager_class); + _pager_update_seqno_p (p, seqno); if (p) + ports_port_deref (p); +} + + +/* Just update the seqno, pointer version. */ +void +_pager_update_seqno_p (struct pager *p, + mach_port_seqno_t seqno) +{ + if (p + && p->port.class == _pager_class) { pthread_mutex_lock (&p->interlock); _pager_wait_for_seqno (p, seqno); _pager_release_seqno (p, seqno); pthread_mutex_unlock (&p->interlock); - - ports_port_deref (p); } } |