[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 5/5] mach-defpager: improve the default_pager_demux_object fu
From: |
Samuel Thibault |
Subject: |
Re: [PATCH 5/5] mach-defpager: improve the default_pager_demux_object function |
Date: |
Mon, 24 Feb 2014 22:48:37 -0500 |
User-agent: |
Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30) |
Justus Winter, le Mon 24 Feb 2014 15:41:56 +0100, a écrit :
> Handle multiple request types as recommended by the Mach Server
> Writer's Guide section 4, subsection "Handling Multiple Request
> Types". This avoids initializing the reply message in every X_server
> function.
Ack.
>
> * mach-defpager/default_pager.c (default_pager_demux_object): Improve
> the demuxer function.
> ---
> mach-defpager/default_pager.c | 30 ++++++++++++++++++++----------
> 1 file changed, 20 insertions(+), 10 deletions(-)
>
> diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
> index 805e065..0977a5d 100644
> --- a/mach-defpager/default_pager.c
> +++ b/mach-defpager/default_pager.c
> @@ -54,7 +54,10 @@
>
> #include <file_io.h>
>
> +#include "memory_object_S.h"
> +#include "memory_object_default_S.h"
> #include "default_pager_S.h"
> +#include "exc_S.h"
>
> #define debug 0
>
> @@ -3019,7 +3022,6 @@ boolean_t default_pager_notify_server(in, out)
> return TRUE;
> }
>
> -extern boolean_t seqnos_memory_object_server();
> extern boolean_t seqnos_memory_object_default_server();
> extern boolean_t default_pager_server();
> extern boolean_t exc_server();
> @@ -3069,15 +3071,23 @@ default_pager_demux_object(in, out)
> * the memory_object_default interface.
> */
>
> -int rval;
> -ddprintf ("DPAGER DEMUX OBJECT <%p>: %d\n", in, in->msgh_id);
> -rval =
> - (seqnos_memory_object_server(in, out) ||
> - seqnos_memory_object_default_server(in, out) ||
> - default_pager_notify_server(in, out) ||
> - default_pager_server(in, out));
> -ddprintf ("DPAGER DEMUX OBJECT DONE <%p>: %d\n", in, in->msgh_id);
> -return rval;
> + int rval = FALSE;
> + ddprintf ("DPAGER DEMUX OBJECT <%p>: %d\n", in, in->msgh_id);
> + mig_reply_setup (in, out);
> +
> + mig_routine_t routine;
> + if ((routine = seqnos_memory_object_server_routine (in)) ||
> + (routine = seqnos_memory_object_default_server_routine (in)) ||
> + (routine = NULL, default_pager_notify_server (in, out)) ||
> + (routine = default_pager_server_routine (in)))
> + {
> + if (routine)
> + (*routine) (in, out);
> + rval = TRUE;
> + }
> +
> + ddprintf ("DPAGER DEMUX OBJECT DONE <%p>: %d\n", in, in->msgh_id);
> + return rval;
> }
>
> mach_msg_size_t default_pager_msg_size_default = 8 * 1024;
> --
> 1.8.5.2
>
--
Samuel
<S> KK1 a 1 conseil de comment s'attaquer a du code java ou ya plus de 50
classes ? par kel bout ?
<B> le troisième
-+- #ens-mim en stage -+-
- [PATCH 1/5] utils/umount: do not remove passive translator records, Justus Winter, 2014/02/24
- [PATCH 3/5] mach-defpager: fix definition of seqnos_memory_object_data_unlock, Justus Winter, 2014/02/24
- [PATCH 2/5] libpager: improve the pager_demuxer function, Justus Winter, 2014/02/24
- [PATCH 4/5] mach-defpager: add function mig_reply_setup, Justus Winter, 2014/02/24
- [PATCH 5/5] mach-defpager: improve the default_pager_demux_object function, Justus Winter, 2014/02/24
- Re: [PATCH 5/5] mach-defpager: improve the default_pager_demux_object function,
Samuel Thibault <=
- Re: [PATCH 1/5] utils/umount: do not remove passive translator records, Samuel Thibault, 2014/02/24