Commit Graph

6681 Commits

Author SHA1 Message Date
Albert Cheng
404ee60bd4 [svn-r2508] Purpose:
Bug fixes
Description:
    All tests were core=dumping in IRIX64.  The bug is in Generic
    property list creation in which malloc asked for 2*64-1 bytes
    due to coding bug.  The object creation failed but the return
    code was not checked.  Program eventually crashed.
Solution:
H5F.c:
    Check the return code from new file object creation and flag
    error accordingly.
H5FL.c:
    H5FL_arr_free is a replacement for H5MM_xfree which accepts
    null value as a legal argument value.  H5FL_arr_free assert
    on it.  Since other parts of the code have been passing null
    value to H5MM_xfree, H5FL_arr_free must accept it too until
    all the calling routines are changed to not pass Null.
H5P.c:
    some routine passes in 0 as the hashsize value which is uintn.
    The expression (hashsize-1) underflows to the largest unsigned
    int for some machines.  Thus the calloc failed.  Cast hashsize
    to unsigned int first (this assumes hashsize stays within the
    signed int data range.
H5Smpio.c:
    Added the extra parameter because the H5FD_write has been redefined.

Platforms tested:
    IRIX64 -64 and -n32
2000-09-05 22:40:21 -05:00
Bill Wendling
da05036244 [svn-r2505] Some of the RETURN macros were returning NULL instead of FAIL...Fixed. 2000-09-05 18:10:06 -05:00
Quincey Koziol
72555fec5a [svn-r2504] Revised routine to add hyperslabs to the selection, sorting the arrays of
hyperslab boundaries after adding them all, instead of maintaining the sorted
order during each addition.  This boosts performance for sub-sampled (i.e.
strided) hyperslabs by about a factor of 10!  :-)
2000-09-04 11:25:34 -05:00
Quincey Koziol
e85425db19 [svn-r2502] Added limits to the free lists, so they will automatically garbage collect and
not eat all the memory in the machine (by default :-)
2000-08-31 18:11:06 -05:00
Quincey Koziol
312cd2c57d [svn-r2501] Added several free lists for commonly used & abused data structures. Also
added code to allow metadata to be allocated out of a more contiguous block
("metadata aggregation") and also code for "catching" small metadata write
calls and building a buffer of the small pieces of metadata for later writing
as one, larger, block ("metadata accumulation").  These features are enabled
on a per VFL driver basis with the new VFL 'query' call and both currently
enabled for the sec2, family and stdio drivers.  The mpio VFL driver enables
only the "metadata aggregation" code, not the "metadata accumulation" code.
All the other drivers have these features turned off.
2000-08-31 14:40:07 -05:00
Quincey Koziol
2910c496e1 [svn-r2500] Added fields to file data structures to allow metadata aggregation and
accumulation to be enabled and tracked.  Also updated some prototypes.
2000-08-31 14:35:44 -05:00
Quincey Koziol
8420b10455 [svn-r2499] Changed H5FDwrite prototype to include new 'type of data' parameter 2000-08-31 14:34:40 -05:00
Quincey Koziol
1ec946fac8 [svn-r2498] Added new VFL 'query' code and added new 'type of data' parameter to write
call.
2000-08-31 14:33:58 -05:00
Quincey Koziol
362baf1299 [svn-r2497] Removing metadata aggregation & accumulation prototyping code (it's in H5FD.c
now) and updated driver to add the new VFL 'query' call.
2000-08-31 14:28:16 -05:00
Quincey Koziol
a3b9c876e1 [svn-r2496] Changed H5F_block_write prototype & added metadata allocation field to file
access property lists.
2000-08-31 14:26:42 -05:00
Quincey Koziol
b678afccd8 [svn-r2495] More type of data parameter additions for H5F_block_write. 2000-08-31 14:26:06 -05:00
Quincey Koziol
0709cc1025 [svn-r2494] Changed the default size of object headers from 16 bytes to 256 bytes. 2000-08-31 14:25:10 -05:00
Quincey Koziol
7e7b6854e6 [svn-r2493] Added a set/get pair of property modifiers to allows users to set/query the
metadata allocation size for file access property lists.  These are new API
functions and should be documented for the next release.
2000-08-31 14:24:36 -05:00
Quincey Koziol
d2b293884e [svn-r2492] Added type of data parameter to H5F_block_write calls and also added the
metadata allocation size to the default file access property lists.
2000-08-31 14:23:13 -05:00
Quincey Koziol
49fd0efca3 [svn-r2491] Added type of data parameter to H5F_block_write calls. 2000-08-31 14:22:03 -05:00
HDF Admin
3ff571ab58 [svn-r2477] Snapshot version 1.3 release 28 2000-08-19 02:21:53 -05:00
Quincey Koziol
1d54c2ad20 [svn-r2476] Added free lists to track various data structures in memory, to reduce malloc
abuse.
2000-08-16 15:13:02 -05:00
Quincey Koziol
4cd9c205ec [svn-r2475] Moved code to insert a new dataset into a group up a few blocks of code, to
get the metadata allocated in the file more tightly together.
2000-08-16 15:12:05 -05:00
Quincey Koziol
f759af2362 [svn-r2474] Updated some old variables to the proper names, added seek logging and added
test code for aggregating metadata into more localized locations in the file.
2000-08-16 15:09:59 -05:00
Quincey Koziol
68203c788a [svn-r2472] Combine object header prefix and first object header chunk when possible. 2000-08-16 15:08:23 -05:00
HDF Admin
e6cc5a8c5e [svn-r2471] Snapshot version 1.3 release 27 2000-08-12 02:20:04 -05:00
Quincey Koziol
9d6434e8af [svn-r2470] Changed parameter type from uintn to size_t to clear up some warnings. 2000-08-08 14:11:05 -05:00
HDF Admin
5b0956d313 [svn-r2469] Snapshot version 1.3 release 26 2000-08-05 02:07:28 -05:00
Bill Wendling
b1b1b74b38 [svn-r2465] Changed nbytes to an hsize_t type since that's what it holds. Also, moved
it into the if-then statement to limit it's scope.
2000-08-04 15:49:59 -05:00
Bill Wendling
15dfa78cd8 [svn-r2464] HGOTO_ERROR was returning NULL instead of FAIL. This was causing compiler
warnings about "implicit cast of pointer to integer" things....
2000-08-04 15:49:09 -05:00
Quincey Koziol
47515ad49c [svn-r2459] Added public API function (H5set_free_list_limits) to allow limits to be
placed on how much memory is used by the free lists before they are garbage
collected.  The default is to have no limit, with garbage collection only
occurring when they cannot allocate memory.
2000-08-04 08:34:05 -05:00
Quincey Koziol
ed4d48157e [svn-r2454] Took out another unneeded assertion which was causing problems. 2000-08-01 14:26:29 -05:00
Quincey Koziol
c675419497 [svn-r2453] Made free-list code garbage collect if it runs out memory during a memory
allocation & attempt to allocate the memory once more.  Also re-named a bunch
of private functions & structures to align with other function names.
2000-08-01 14:13:38 -05:00
Quincey Koziol
3651a0a0bf [svn-r2450] Remove asserts on non-existent variables.. 2000-08-01 10:54:39 -05:00
Quincey Koziol
d71de4f7a3 [svn-r2448] Re-did section of hyperslab initialization code to avoid tons of realloc()
calls.  Speeds user's test code up by ~25 times... :-)
2000-07-28 15:14:48 -05:00
Quincey Koziol
e896d31ae2 [svn-r2447] Another small calculation optimization. 2000-07-28 15:13:30 -05:00
Quincey Koziol
958d2ef179 [svn-r2446] Some small performance improvements to various allocations and calculations. 2000-07-27 19:06:35 -05:00
Quincey Koziol
55ea4084df [svn-r2445] Check in initial coding effort for automatically garbage collecting the free
lists.  Each kind of list one has hard-coded limits on when to garbage collect,
which will be replaced with user-controllable knobs (through property list
settings, I think) once I finish debugging some related performance problems.
2000-07-27 16:17:35 -05:00
Quincey Koziol
2c8c5f9692 [svn-r2444] Checkpoint the Generic Property implementation. It's not active yet, but it's
close.  This shouldn't interfere with other development work.  (I think.. :-)
2000-07-25 12:35:17 -05:00
Quincey Koziol
2a14d16d80 [svn-r2442] Insert better error checking when memory allocation fails (in certain obscure
situations).
2000-07-25 12:27:55 -05:00
HDF Admin
4505e59d47 [svn-r2441] Snapshot version 1.3 release 25 2000-07-22 02:04:57 -05:00
HDF Admin
27a8936a27 [svn-r2429] Snapshot version 1.3 release 24 2000-07-08 03:08:43 -05:00
HDF Admin
5744b53675 [svn-r2423] Snapshot version 1.3 release 23 2000-07-01 17:49:35 -05:00
HDF Admin
79e773670a [svn-r2422] Snapshot version 1.3 release 22 2000-07-01 15:49:08 -05:00
Robb Matzke
6f8f4a3c6e [svn-r2410] Changed H5MM_strdup() to H5MM_xstrdup() so we get a core dump sooner
if allocation fails.
2000-06-23 12:45:31 -05:00
Bill Wendling
90bc20edb5 [svn-r2348] The way the pthread_t object was being initialized wasn't correct for all
platforms. Also, it's not entirely certain that a value of 0 isn't a
valid thread ID. So, I changed the pthread_t object to be a pointer to
pthread_t with the appropriate memory management this entails. Part of
the validity of this approach rests on the fact that one can assign a
variable which is a structure to another variable of the same type and
all fields within will be copied appropriately...See! C *does* do some
things correctly :-).
2000-06-06 15:50:18 -05:00
Quincey Koziol
8cb2d8c6af [svn-r2345] Fixed a few more places where free'd memory was being inspected. 2000-06-06 14:00:07 -05:00
Quincey Koziol
f16251c705 [svn-r2344] Fixed a bug where memory was being inspected after being free'd, found only
in Windows.
2000-06-06 13:53:16 -05:00
Quincey Koziol
ae635d079e [svn-r2343] *sigh* Corrected H5AC_compare again. (Trying to fix a bug which only is
manifesting on Windows, so it's a bit of a remote-control problem...)
2000-06-06 13:24:51 -05:00
Quincey Koziol
f3abf1f345 [svn-r2342] Updated H5AC_compare function to detect NULL pointers to cached objects
correctly and also corrected incorrect test in H5AC_flush
2000-06-06 13:11:10 -05:00
Quincey Koziol
ae69e30f76 [svn-r2318] Rearranged metadata caching to put caching information in the objects being
cached instead of in separate structures.  This reduces the amount of memory
the hash table uses by about half.  This is the initial step along the path of
speeding up the metadata caching.
2000-06-01 18:45:11 -05:00
Albert Cheng
cdbc5e92c2 [svn-r2292] Snapshot version 1.3 release 21 2000-05-25 22:47:26 -05:00
Bill Wendling
b97c63cdbc [svn-r2286] Gave the threading functions return types (herr_t). pthreads' calls
return 0 on success and non-zero on failure. That's what happens with
these calls.

There was a problem compiling threading on Linux. The pthread_t type is
not consistent among different implementations, so it cannot simply be
assigned to NULL or tested against it. I initialize it by calling
HDmemset(foo_thread, 0, sizeof(pthread_t)). To see if it's a "null"
pthread, I created a special pthread_t object (assigned to only in the
init phase and then only read...i.e., thread safe) and assigned it "null"
as above. Then I use pthread_equal() to determine if the thread is null.
2000-05-19 17:02:24 -05:00
Bill Wendling
fb75b8a89c [svn-r2285] A \ was needed at the end of one of the definitions to make gmake work. 2000-05-19 16:35:40 -05:00
Bill Wendling
c4ba19fb75 [svn-r2284] Duplicate initialization of variable removed. 2000-05-19 16:34:23 -05:00