EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: registrySetTableSize() unusable
From: Andrew Johnson <[email protected]>
To: [email protected]
Date: Fri, 28 Jan 2011 17:13:31 -0600
Hi Till,

On Thursday 27 January 2011 19:52:47 Till Straumann wrote:
> registrySetTableSize() can only be called before the hash table
> is lazy-initialized but that apparently happens from some C++
> global constructor already so that the application gets it's shot
> too late (i.e., even the first line of 'main()' is too late).
>
> (Since the registry is used for registering function names for
> iocsh etc. it is impossible to set the table size from a startup
> script anyways.)

I agree, registrySetTableSize() can't even be used on vxWorks since the static 
C++ constructor that registers some basic iocsh commands gets run as we load 
the binary, so it's currently useless.

> PS: An alternate 'general-purpose' hash implementation using
> the linear-hashing algorithm could be explored. This would avoid
> having to set static table sizes.

Code contributions are welcome.  I think Jeff already has various hash table 
templates that are similar to linear hashing (see resourceLib.h) but they 
present a C++ API.

- Andrew
-- 
If a man is offered a fact which goes against his instincts, he will
scrutinize it closely, and unless the evidence is overwhelming, he will
refuse to believe it.  If, on the other hand, he is offered something
which affords a reason for acting in accordance to his instincts, he
will accept it even on the slightest evidence.  -- Bertrand Russell


References:
registrySetTableSize() unusable Till Straumann

Navigate by Date:
Prev: Re: ca_create_channel memory management pthomas
Next: Re: ca_create_channel memory management Matthieu Bec
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: registrySetTableSize() unusable Till Straumann
Next: epicsMessageQueue Linux PREEMPT_RT james.rowland
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·