[OPEN-ILS-DEV] PATCH: transport_client.[ch] (tidying-up, and suggestions for more)
Mike Rylander
mrylander at gmail.com
Sat Dec 6 17:15:40 EST 2008
On Sat, Dec 6, 2008 at 1:41 PM, Scott McKellar <mck9 at swbell.net> wrote:
> This patch tidies up a few things:
>
> 1. Corrected a few minor typos in the header.
>
> 2. Made the client_message_handler function static, since no other source
> file references it by name.
>
> 3. Moved several things from the header to the implementation file, of
> which all are internal details not referenced elsewhere:
>
> -- The macros MESSAGE_LIST_HEAD and MESSAGE_LIST_ITEM
> -- The declaration for struct message_list_struct, along with the
> associated typedefs
Applied, with more below.
[snip]
>
> I propose the following changes:
>
> 1. Add a "next" pointer to the transport_message. The code in
> transport_message.c will initialize it to NULL but otherwise ignore it.
>
> 2. Eliminate the dummy node.
>
> 3. In the transport_client, maintain two pointers: one to the head of
> the queue and one to the tail. Then the time complexity of building a
> queue with n nodes will be O(n).
>
> The last proposal is independent of the other two. It will make a
> difference only for longish queues. I have no idea how long the queues
> typically get, but I'm inclined to code for long queues. Short queues
> will be fast enough no matter how you manage them.
>
> Give me the go-ahead and I shall prepare the patches accordingly.
As it's transparent to the rest of the code, I say go. It gives me
pause to conflate the individual messages with the message container,
but code maintenance and performance improvements trump that IMO.
--miker
>
> Scott McKellar
> http://home.swbell.net/mck9/ct/
>
> Developer's Certificate of Origin 1.1 By making a contribution to
> this project, I certify that:
>
> (a) The contribution was created in whole or in part by me and I
> have the right to submit it under the open source license indicated
> in the file; or
>
> (b) The contribution is based upon previous work that, to the best
> of my knowledge, is covered under an appropriate open source license
> and I have the right under that license to submit that work with
> modifications, whether created in whole or in part by me, under the
> same open source license (unless I am permitted to submit under a
> different license), as indicated in the file; or
>
> (c) The contribution was provided directly to me by some other person
> who certified (a), (b) or (c) and I have not modified it; and
>
> (d) In the case of each of (a), (b), or (c), I understand and agree
> that this project and the contribution are public and that a record
> of the contribution (including all personal information I submit
> with it, including my sign-off) is maintained indefinitely and may
> be redistributed consistent with this project or the open source
> license indicated in the file.
--
Mike Rylander
| VP, Research and Design
| Equinox Software, Inc. / The Evergreen Experts
| phone: 1-877-OPEN-ILS (673-6457)
| email: miker at esilibrary.com
| web: http://www.esilibrary.com
More information about the Open-ils-dev
mailing list